opencv 分辨颜色

来源:互联网 发布:网络教育专升本哪个好 编辑:程序博客网 时间:2024/04/19 06:52


直方图方法:

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).