首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数学软件实现RGB到灰度的详细计算

数学软件实现RGB到灰度的详细计算
EN

Stack Overflow用户
提问于 2015-01-07 04:26:48
回答 2查看 191关注 0票数 3

我试过了

代码语言:javascript
复制
ColorConvert[img, "Grayscale"]

若要将RGB转换为灰度,请执行以下操作。我在想数学的详细计算。

代码语言:javascript
复制
Gray level= square(R^2+G^2+B^2)?

还是别的什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-07 15:35:09

我们可以通过用纯红色、绿色、蓝色组成一个3像素的图像,并将其转换,从而得到mathematica所使用的精确值:

代码语言:javascript
复制
 lvec = First@
         ImageData[
           ColorConvert[Image[{{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}], 
             "GrayScale"]]

{0.299,0.587,0.114}

注:这些是每个%28video%29的“建议601露娜系数”。

在一个真实的图像上测试这个:

代码语言:javascript
复制
 lena = ExampleData[{"TestImage", "Lena"}];
 lenag = ColorConvert[lena, "GrayScale"];
 ImageData@ImageApply[ lvec.# & , lena ] == ImageData@lenag

真的

票数 2
EN

Stack Overflow用户

发布于 2015-01-07 11:06:15

有关如何进行计算,请参见How can I convert colors to grayscale?

下面的命令生成的两个图像是紧密匹配的,但是您可以通过一个简短的程序进行多次比较,找出精确的缩放向量。对不同图像的进一步测试将确定ColorConvert是否一直使用相同的矢量,或者在转换为最佳灰度外观之前对图像进行分析。

代码语言:javascript
复制
ColorConvert[img, "GrayScale"]

ImageApply[{0.35, 0.45, 0.2}.# &, img]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27812393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档