如何用hsv来判定某个像素的颜色

2025-05-29 04:18:59

1、螽啸镥释相比与RGB识别颜色,HSV颜色识别的准确度更高,HSV中对颜色的掌控只有H这个值,所以当H的区间定了,该颜色基本就定了。以下为对各种颜色判断HSV的区间。在计算机识别颜色上,将H取值为(0,180°);S为(0,255);V为(0,255)

如何用hsv来判定某个像素的颜色

2、在C++中,可以用scalar.val[0] 表示Hscalar.val[1] 表示Sscalar.val[2] 表示V

3、对颜薄本窭煌色的判定可以如下所示:if ((scalar.val[0] >= 0 && scalar.val[0] <= 180) &锾攒揉敫amp;& (scalar.val[1] >= 0 && scalar.val[1] <= 255) && (scalar.val[2] >= 0 && scalar.val[2] <= 46)){ numblack++;//黑色判定 } else if ((scalar.val[0] >= 0 && scalar.val[0] <= 180) && (scalar.val[1] >= 0 && scalar.val[1] <= 43) && (scalar.val[2] >= 46 && scalar.val[2] <= 220)){ numgrey++;//灰色判定 } else if ((scalar.val[0] >= 0 && scalar.val[0] <= 180) && (scalar.val[1] >= 0 && scalar.val[1] <= 30) && (scalar.val[2] >= 221 && scalar.val[2] <= 255)){ numwhite++;//白色判定 } else if (((scalar.val[0] >= 0 && scalar.val[0] <= 10) || (scalar.val[0] >= 156 && scalar.val[0] <= 180)) && (scalar.val[1] >= 43 && scalar.val[1] <= 255) && (scalar.val[2] >= 46 && scalar.val[2] <= 255)){ numred++;//红色判定 } else if ((scalar.val[0] >= 26 && scalar.val[0] <= 34) && (scalar.val[1] >= 43 && scalar.val[1] <= 255) && (scalar.val[2] >= 46 && scalar.val[2] <= 255)){ numyellow++;//黄色判定 } else if ((scalar.val[0] >= 100 && scalar.val[0] <= 124) && (scalar.val[1] >= 43 && scalar.val[1] <= 255) && (scalar.val[2] >= 46 && scalar.val[2] <= 255)){ numblue++;//蓝色判定 }

如何用hsv来判定某个像素的颜色

4、首先遍历整个图像的像素点,然后对每一个像素点进行HSV提取,对该像素点颜色进行判定,判定为某种颜色,该颜色+1,直到全部像素点判定完成,也就知道该颜色的数目,该颜色数目/总像素数目=该颜色在这图片上的占比。

如何用hsv来判定某个像素的颜色

5、占比计算和输出。

如何用hsv来判定某个像素的颜色
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢