1.使用我的“粗略”灰度算法有什么缺点吗? 2.是否有任何输入图像,其中我的灰度算法将产生可见不同于“正确”的图像? 3.对于哪些颜色/RBG组合,我的算法效果不佳?
我的关键代码(如果需要):
def greyScale(pixelTuple):
return tuple([round(sum(pixelTuple) / 3)] * 3)
“正确”的算法(似乎严重偏向绿色):
def greyScale(pixelTuple):
return tuple([round(0.299 * pixelTuple[0] + 0.587 * pixelTuple[1] + 0.114 * pixelTuple[2])] * 3)
尽管上面突出显示的像素变化,对我来说,上面的灰度图像看起来几乎完全相同。
此外,关于我的第一个问题,如果有人感兴趣,此网站已经对不同的灰度转换算法进行了分析,并且还有一些自定义算法。
编辑:
作为对@Szulat答案的回应,我的算法实际上生成了这个图像(忽略糟糕的裁剪,原始图像有三个圆,但我只需要第一个):
如果人们想知道将图像转换为灰度的原因(因为似乎算法取决于目的),那么我只是在python
中制作一些简单的照片编辑工具,以便我可以拥有迷你版Photoshop,并且不需要依靠互联网来应用滤镜和效果。
博客奖励的原因:这里的不同答案涵盖了不同的内容,这些内容都是相关和有帮助的。这使得选择要接受的答案变得非常困难。我开始了一项悬赏,因为我喜欢在这里列出的一些答案,但也因为拥有一个覆盖此问题所需所有内容的单个答案是很好的。
matrix
参数,转换将在C中完成(而不是在Python中),速度会快得多。 - Mr. Llama