本次要整理记录的内容有:通过HSV色彩空间提取具有某种色彩范围的区域和像素统计。
- HSV色彩空间提取色彩范围
一般我们所使用的图像都是RGB图像,也就是具有R、G、B三通道的图像,每个通道的取值范围为[ 0 , 255 ]。而HSV图像同样是应用十分广泛的一种图像类型,它分为H、S、V三个通道,分别为色调、饱和度、亮度,其中H的取值范围是[ 0, 180 ],S和V的取值范围是[ 0 , 255 ]。因为HSV图像存在色调这一通道,而不同颜色的色调都是不同的,所以我们可以通过规定色调通道的不同取值范围从而来提取出不同的颜色。相应代码如下:
/********************色彩空间 --- 提取色彩范围 ********************/
Mat image_RGB;
image_RGB = imread("D:\\opencv_c++\\opencv_tutorial\\data\\images\\greenback.png");
resize(image_RGB, image_RGB, Size(400, 300));
Mat image_hsv;
cvtColor(image_RGB, image_hsv, COLOR_BGR2HSV);
namedWindow("image_hsv", WINDOW_AUTOSIZE);
moveWindow("image_hsv", 400, 200);
imshow("image_hsv", image_hsv);
Mat mask;
//将规定区间内的值置为255;必须使用Scalar()来赋值
inRange(image_hsv, Scalar(35, 43, 46), Scalar(99