Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 手动将图像像素从颜色ARGB转换为灰度ARGB_Java_Algorithm_Grayscale_Argb - Fatal编程技术网

Java 手动将图像像素从颜色ARGB转换为灰度ARGB

Java 手动将图像像素从颜色ARGB转换为灰度ARGB,java,algorithm,grayscale,argb,Java,Algorithm,Grayscale,Argb,因此,我有一个项目,通过使用算法改变argb值,手动将图像转换为黑白。我试着平均RGB值,得到了一幅几乎完全灰度化的图像,但仍然有颜色的暗示。有人有算法示例可以手动将aRGB中的像素转换为灰度吗 到目前为止,我一直在这样做: //Apply the filter reds = ((reds+greens+blues)/3); greens = ((reds+greens+blues)/3); blue

因此,我有一个项目,通过使用算法改变argb值,手动将图像转换为黑白。我试着平均RGB值,得到了一幅几乎完全灰度化的图像,但仍然有颜色的暗示。有人有算法示例可以手动将aRGB中的像素转换为灰度吗

到目前为止,我一直在这样做:

            //Apply the filter
            reds = ((reds+greens+blues)/3);
            greens = ((reds+greens+blues)/3);
            blues = ((reds+greens+blues)/3);

看起来您正在更改右侧的输入,同时希望其值保持不变。为什么不用这个

reds = (reds + greens + blues) / 3;
greens = reds;
blues = reds;

看起来您正在更改右侧的输入,同时希望其值保持不变。为什么不用这个

reds = (reds + greens + blues) / 3;
greens = reds;
blues = reds;

我一直认为,由于我们的眼睛对红色、绿色和蓝色波长的敏感度不同,灰度应该使用以下公式计算:

(int) (0.299 * red + 0.587 * green + 0.114 * blue)

几年前,这曾经是很容易找到的信息,但现在我找不到太多的来源。是一个。

我一直认为,由于我们的眼睛对红色、绿色和蓝色波长的敏感度不同,灰度应该使用以下公式计算:

(int) (0.299 * red + 0.587 * green + 0.114 * blue)

几年前,这曾经是很容易找到的信息,但现在我找不到太多的来源。是一个。

@user1088595别难过,我只是混淆了左和右:)我认为把这个答案标记为正确是个好主意。@user1088595别难过,我只是混淆了左和右:)我认为把这个答案标记为正确是个好主意。值得注意的是,由于人类眼睛的生物学特性,红色,绿色,当图像转换为灰度时,蓝色不应均匀加权。值得注意的是,由于人眼的生物学特性,当图像转换为灰度时,红色、绿色和蓝色不应均匀加权。