opencv 分辨颜色

本文介绍了一种使用直方图方法进行图像处理的技术,包括如何通过计算直方图和反向投影来识别不同颜色ID的像素数量。此外,还讨论了不同背景条件下将彩色图像转换为灰度图像的方法,例如当背景完全为黑色或颜色统一时的简单转换过程,以及背景不均匀情况下的复杂解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


直方图方法:

I would suggest to try histograms. You can call calcHist and thencalcBackProject. As a result you will have a Mat with pixel values which show the histogram bin index = color ID. Having such Mat it should be easy to understand how many blobs of every color ID do you have, i.e. by contour analysis.


灰度变换:

If the background is completely black you can simply use cvtColor(src,dst,CV_RGB2GRAY) to transfer this image into gray image. Than use findContours on dst, and check number of polygons.

If the background is not black, but at least uniform and you know its color, you can use compare(src,color,dst,CMP_EQ) to determine which pixels are part of the background and which are not. Again use findContours on dst.

If the background is not uniform, the problem became more complicate and will require more complicate solutions. Also note that detection of hue is not something that will help you for blob detection (usually).



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值