要将扩散应用于图像,可以使用像Floyd (FS)这样的算法,但是如何控制像Photoshop这样抖动的图像的“百分比”在遗留的“为Web保存”功能中有一个选项?在Python中,可以使用im.convert('1')将图像转换为黑白图像,并自动应用FS抖动。但这似乎是百分之百的抖动。我希望它能更接近88%的Photoshop效果。如何做到这一点?(使用库或修改FS算法)

抖动%对图像的影响示例(通过Photoshop生成):
抖动25%:

抖动50%:

抖动75%:

抖动100%:

发布于 2016-10-21 19:53:34
我不太清楚Photoshop到底是怎么回事,但从我的搜索和评论中,我得到了一个似乎是正确的想法。所以这可能不是正确的答案,但也可能是类似的答案。
我将在灰度到单色(将间隔[0,1]映射到集合{0,1})的情况中描述这一想法,当然,这可以外推到颜色大小写。
将p设为所需的百分比(例如p在[0,1]中)。该算法将执行Floyd,但只将错误推到位于区间[(1-p)/2, (1-p)/2 + p]中的邻居上。所以如果我所有的邻居都在这个范围之外,我的错误就会被扔掉。否则,我的错误会被推到该范围内的任何一个(与Floyd通常指定的比例相同)。
我正在犹豫这是否会产生预期的结果(我不能百分之百肯定),但这似乎至少类似。告诉我你的调查进展如何!
https://stackoverflow.com/questions/40177925
复制相似问题