已经有RGB颜色值,怎么判断这个颜色是否接近黑色

kmsch 2015-05-11 09:55:54
可以设一个阀值,在某个范围内都算接近于黑色

关键想问一下,要怎么判断,我试过设置大于三个分量均小于100,可是也有些情况不对,有没更好的意见
...全文
3262 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
此后三年 2015-05-12
  • 打赏
  • 举报
回复
转成灰度, 灰度值越小表示图像越暗,反之越亮, 灰度值取值 0-255 计算方法 RGB->GrayScale的转换基本公式是这个 R = G = B = 0.3R + 0.6G + 0.1B; 还有的公式是这样 Y=0.212671*R + 0.715160*G + 0.072169*B,差不了太多;
paschen 版主 2015-05-12
  • 打赏
  • 举报
回复
引用 1 楼 sugar13 的回复:
灰度模型 r*.299+g*.587+b*.114<某阈值,表示足够暗? 点(r,g,b)到线段(0,0,0)(1,1,1)的距离<某阈值,表示足够灰?
这个貌似不错
paschen 版主 2015-05-12
  • 打赏
  • 举报
回复
感谢楼上各位,那么如果要接近白色怎么判断呢?
勤奋的小游侠 2015-05-12
  • 打赏
  • 举报
回复
接近黑色还是灰色?只要r=b=g,这个颜色就是从白到黑的。小于125就可以将它视作灰色了吧,再小一点就可以当成黑色了
worldy 2015-05-12
  • 打赏
  • 举报
回复
可以使用(R+B+G)/3<n
xiaohuh421 2015-05-12
  • 打赏
  • 举报
回复
这要看你定义黑色是什么意思. 一般来说, 是白光调暗后得到的结果. 所以如果RGB三个值相差较大, 那么它们可能是某种颜色. 只有当RGB三个值之间差值小, 并且三个值本身都小于某个值时, 才表现得像黑色. 如10,10,40 可能就表现为蓝色. 而20,20,20可能表现就很暗,像黑色
fly_dragon_fly 2015-05-12
  • 打赏
  • 举报
回复
RGB转成HSV试一下
赵4老师 2015-05-12
  • 打赏
  • 举报
回复
引用 9 楼 kmsch 的回复:
[quote=引用 2 楼 fly_dragon_fly 的回复:] RGB转成HSV试一下
怎么转换呢[/quote] https://www.baidu.com/s?wd=RGB%E8%BD%AC%E6%88%90HSV&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_n=2&rsv_sug3=1
kmsch 2015-05-12
  • 打赏
  • 举报
回复
引用 2 楼 fly_dragon_fly 的回复:
RGB转成HSV试一下
怎么转换呢
失散糖 2015-05-11
  • 打赏
  • 举报
回复
灰度模型 r*.299+g*.587+b*.114<某阈值,表示足够暗? 点(r,g,b)到线段(0,0,0)(1,1,1)的距离<某阈值,表示足够灰?

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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