我试过了
ColorConvert[img, "Grayscale"]若要将RGB转换为灰度,请执行以下操作。我在想数学的详细计算。
Gray level= square(R^2+G^2+B^2)?还是别的什么?
发布于 2015-01-07 15:35:09
我们可以通过用纯红色、绿色、蓝色组成一个3像素的图像,并将其转换,从而得到mathematica所使用的精确值:
lvec = First@
ImageData[
ColorConvert[Image[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}],
"GrayScale"]]{0.299,0.587,0.114}
注:这些是每个%28video%29的“建议601露娜系数”。
在一个真实的图像上测试这个:
lena = ExampleData[{"TestImage", "Lena"}];
lenag = ColorConvert[lena, "GrayScale"];
ImageData@ImageApply[ lvec.# & , lena ] == ImageData@lenag真的
发布于 2015-01-07 11:06:15
有关如何进行计算,请参见How can I convert colors to grayscale?。
下面的命令生成的两个图像是紧密匹配的,但是您可以通过一个简短的程序进行多次比较,找出精确的缩放向量。对不同图像的进一步测试将确定ColorConvert是否一直使用相同的矢量,或者在转换为最佳灰度外观之前对图像进行分析。
ColorConvert[img, "GrayScale"]
ImageApply[{0.35, 0.45, 0.2}.# &, img]https://stackoverflow.com/questions/27812393
复制相似问题