色差问题优化
This commit is contained in:
1 parent
8577d13579
commit
c49c3df5ad
1 file changed
+9
-1
@@ -10406,8 +10406,16 @@ void MeshTexture::GlobalSeamLeveling3()
|
|||||||
if (a == Color::ZERO)
|
if (a == Color::ZERO)
|
||||||
continue;
|
continue;
|
||||||
Pixel8U& v = image.at<Pixel8U>(r,c);
|
Pixel8U& v = image.at<Pixel8U>(r,c);
|
||||||
|
// 替换原来的 RGB2YCBCR → 加减 → YCBCR2RGB 那段
|
||||||
|
const float maxAdjY = 25.0f;
|
||||||
|
const float maxAdjC = 12.0f;
|
||||||
|
Color clamped_a;
|
||||||
|
clamped_a[0] = CLAMP(a[0], -maxAdjY, maxAdjY);
|
||||||
|
clamped_a[1] = CLAMP(a[1], -maxAdjC, maxAdjC);
|
||||||
|
clamped_a[2] = CLAMP(a[2], -maxAdjC, maxAdjC);
|
||||||
|
|
||||||
const Color col(RGB2YCBCR(Color(v)));
|
const Color col(RGB2YCBCR(Color(v)));
|
||||||
const Color acol(YCBCR2RGB(Color(col+a)));
|
const Color acol(YCBCR2RGB(Color(col + clamped_a)));
|
||||||
for (int p = 0; p < 3; ++p)
|
for (int p = 0; p < 3; ++p)
|
||||||
v[p] = (uint8_t)CLAMP(ROUND2INT(acol[p]), 0, 255);
|
v[p] = (uint8_t)CLAMP(ROUND2INT(acol[p]), 0, 255);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user