gpt4 book ai didi

c# - 拜耳有序抖动

转载 作者:太空狗 更新时间:2023-10-30 00:45:57 25 4
gpt4 key购买 nike

我正在更新我几个月前制作的 Paint.net 插件,它被称为模拟颜色深度,它将图像中的颜色数量减少到所选的 BPP,并且很长一段时间它都包含抖动但是从来没有订购过抖动,我认为加入它会是一个很好的补充,所以我开始在互联网上搜索有用的东西,我最终在这个维基页面上 http://en.wikipedia.org/wiki/Ordered_dithering , 并尝试按照伪代码中所写的去做

for (int y = 0; x < image.Height; y++)
{
for (int x = 0; x < image.Width; x++)
{
Color color = image.GetPixel(x, y);
color.R = color.R + bayer8x8[x % 8, y % 8];
color.G = color.G + bayer8x8[x % 8, y % 8];
color.B = color.B + bayer8x8[x % 8, y % 8];
image.SetPixel(x, y, GetClosestColor(color, bitdepth);
}
}

但结果太亮了,所以我决定再次检查 wiki 页面,然后我看到阈值图右侧有一个“1/65”,这让我想到了两种错误扩散(是的,我知道,奇怪吧?)并将我从 bayer8x8[x % 8, y % 8] 得到的值除以 65,然后将该值与颜色 channel 相乘,但要么结果很乱,要么仍然太亮了(我记得),但结果与我在其他地方看到的完全不同,要么太亮,要么对比度太高,要么太乱,我还没有找到任何真正有用的东西通过互联网搜索,所以有人知道我怎么能让这个拜耳抖动正常工作?

提前致谢,Cookies

最佳答案

我认为您的原始算法(来自维基百科)没有任何问题。亮度差异可能是显示器 Gamma 的产物。检查Joel Yliluoma's Positional Dithering Algorithm , 这篇文章中有关 Gamma 校正的附录是关于 Joel Yliluoma ( http://bisqwit.iki.fi/story/howto/dither/jy/#Appendix%201GammaCorrection ) 发明的抖动算法,以查看对效果的解释(注意:页面图形非常多)。

顺便说一句,也许那篇文章中详述的(显然是公共(public)领域的)算法可以解决您的问题...

关于c# - 拜耳有序抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com