求助:如何根据给定图像的像素值,判断此像素是何种颜色?

fengbingchun
博客专家认证
2012-08-20 04:25:20
在彩色图像中,如RGB颜色空间(色彩空间),给出某一像素值如RGB(255,255,255),我们知道此像素为白色,RGB(0,0,0)为黑色,RGB(127,127,127)为灰色,RGB(255,0,0)为红色,RGB(0,255,0)为绿色,RGB(0,0,255)为蓝色,但是如果任意给出一个RGB像素值,我们该如何比较精确的判断此像素的颜色呢?如RGB(150,152,200)比较接近于哪种颜色呢?
望高手指点,谢谢!
...全文
5583 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohardto 2015-03-26
  • 打赏
  • 举报
回复
一个r,g或b分量的值用一个byte表示,看成由三个字节组成的一个整数,r是最低字节,b是最高字节,换算成整数。
lyzanzan 2014-11-12
  • 打赏
  • 举报
回复
正在做颜色识别,学习了
paradiseccc 2014-06-03
  • 打赏
  • 举报
回复
请问这个「十进制颜色值」是怎么算出来的? 例如,「RGB(150,152,200) 对应的 10进制的颜色值 为 13146262」是怎么算出来的?
引用 20 楼 apple_8180 的回复:
把 RGB 值转换成10进制的颜色值,然后对照下表,看一下与哪个10进制的颜色值接近,就大体确定了颜色。
mjy727 2013-07-31
  • 打赏
  • 举报
回复
引用 29 楼 fengbingchun 的回复:
http://wenku.baidu.com/view/eb2d600dbb68a98271fefadc.html 按照这个来计算经常把白色误分类为灰色。
其他的能够准确判别出来吗?
fengbingchun 2012-08-22
  • 打赏
  • 举报
回复
http://wenku.baidu.com/view/eb2d600dbb68a98271fefadc.html
按照这个来计算经常把白色误分类为灰色。
副组长 2012-08-21
  • 打赏
  • 举报
回复
人眼对RGB色彩模型是不敏感的,那个分量多就偏一点那个颜色,但是不准。
比方RGB为255,0,0是红色。但是和128,0,0比起来哪个更红?答案是后者。
6楼的IHS模型是针对人眼的,其中H是色调,它是一个角度,上颜色立体模型上就对应上相应的色调。
ForestDB 2012-08-21
  • 打赏
  • 举报
回复
先看看颜色理论,颜色是怎么分类的。
fengbingchun 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 的回复:]

引用 22 楼 的回复:

引用 20 楼 的回复:

把 RGB 值转换成10进制的颜色值,然后对照下表,看一下与哪个10进制的颜色值接近,就大体确定了颜色。

谢谢,这种方法感觉确实可行,不过,如果图像比较大的话,每个像素都进行这样计算,效率会不会较低呢。
转换很快很容易,不会影响效率的。
[/Quote]
好的,谢谢,我试试看。
十豆三 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 的回复:]

引用 20 楼 的回复:

把 RGB 值转换成10进制的颜色值,然后对照下表,看一下与哪个10进制的颜色值接近,就大体确定了颜色。

谢谢,这种方法感觉确实可行,不过,如果图像比较大的话,每个像素都进行这样计算,效率会不会较低呢。
[/Quote]转换很快很容易,不会影响效率的。
schlafenhamster 2012-08-21
  • 打赏
  • 举报
回复
20楼的方法可以!
fengbingchun 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 的回复:]

把 RGB 值转换成10进制的颜色值,然后对照下表,看一下与哪个10进制的颜色值接近,就大体确定了颜色。
[/Quote]
谢谢,这种方法感觉确实可行,不过,如果图像比较大的话,每个像素都进行这样计算,效率会不会较低呢。
十豆三 2012-08-21
  • 打赏
  • 举报
回复
RGB(150,152,200) 对应的 10进制的颜色值 为 13146262,从上图可以得出接近灰色,介于灰色与蓝色之间。
十豆三 2012-08-21
  • 打赏
  • 举报
回复
把 RGB 值转换成10进制的颜色值,然后对照下表,看一下与哪个10进制的颜色值接近,就大体确定了颜色。

fengbingchun 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

把RGB分开,<5的就算0;>与200的就算255
每一色分成2个级(0 or 255),就出来八种色,越高越精确
总要有个表的,例如红色(7,0,0),黄绿。。。。。。,蓝色(0,0,7);//一种颜色分8种情况
把RGB值往这上进似转换,比对表就行了,这个表是无法省略的
而且应该是个表现越丰富越费时的矛盾关系,感觉应是可以接受的,一种颜色分8级,每32个值为一级,正好8级,共512种……
[/Quote]
谢谢,可否说的再详细些。
fengbingchun 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

楼主你知道滴灌程序么?Mezer tools
可以吸取屏幕的彩色值转换为RGB,也可以键入RGB的值,呈现颜色。

免费小软件。对开发非常有帮助
[/Quote]

谢谢!
fengbingchun 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

这有一篇介绍彩色模型的
http://met.fzu.edu.cn/dip/c6_2.htm
[/Quote]

谢谢!
fengbingchun 2012-08-21
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 的回复:]

人眼对RGB色彩模型是不敏感的,那个分量多就偏一点那个颜色,但是不准。
比方RGB为255,0,0是红色。但是和128,0,0比起来哪个更红?答案是后者。
6楼的IHS模型是针对人眼的,其中H是色调,它是一个角度,上颜色立体模型上就对应上相应的色调。
[/Quote]
谢谢!
w_xei 2012-08-20
  • 打赏
  • 举报
回复
如果你想取得任何一点的颜色RGB值,使用GetPixel()
franzhong 2012-08-20
  • 打赏
  • 举报
回复
把RGB分开,<5的就算0;>与200的就算255
每一色分成2个级(0 or 255),就出来八种色,越高越精确
总要有个表的,例如红色(7,0,0),黄绿。。。。。。,蓝色(0,0,7);//一种颜色分8种情况
把RGB值往这上进似转换,比对表就行了,这个表是无法省略的
而且应该是个表现越丰富越费时的矛盾关系,感觉应是可以接受的,一种颜色分8级,每32个值为一级,正好8级,共512种颜色还不够用吗
正则匹配下来,我猜时间应该可以接受的
傻X 2012-08-20
  • 打赏
  • 举报
回复
楼主你知道滴灌程序么?Mezer tools
可以吸取屏幕的彩色值转换为RGB,也可以键入RGB的值,呈现颜色。

免费小软件。对开发非常有帮助
加载更多回复(13)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧