所以我有一个项目,通过使用算法改变argb值,手动将图像转换为黑白图像。我试着平均RGB的值,我得到了一个几乎完全灰度的图像,但仍然有颜色的暗示。谁有什么算法示例可以手动将aRGB中的像素转换为灰度?
这是我到目前为止一直在做的事情:
//Apply the filter
reds = ((reds+greens+blues)/3);
greens = ((reds+greens+blues)/3);
blues = ((reds+greens+blues)/3);发布于 2013-02-24 23:00:26
看起来您正在更改右侧的输入,同时希望它的值保持不变。为什么不用这个呢?
reds = (reds + greens + blues) / 3;
greens = reds;
blues = reds;发布于 2013-02-25 04:20:45
我一直认为,由于我们的眼睛对红、绿、蓝三种波长的敏感度不同,灰度的计算方法应该是:
(int) (0.299 * red + 0.587 * green + 0.114 * blue)几年前,这是很容易找到的信息,但现在我找不到太多的来源。Wikipedia's entry on grayscale就是其中之一。
https://stackoverflow.com/questions/15052933
复制相似问题