首先,我们需要了解RGB、HSV、GRAY颜色模型
RGB颜色模型
第一个通道为蓝色(B)
第一个通道为绿色(G)
第一个通道为红色(R)
RGB三色光互相叠加来实现混色,三种颜色所占比例不同,得到的颜色就不同。
HSV颜色模型
H:色度 (颜色)
S:饱和度 (深浅)
V:亮度(亮暗)
GRAY颜色模型
由RGB模型转灰度图,其关系式:
GRAY=R*0.3+G*0.59+B*0.11
GRAY=0时,为黑色 GRAY=255时,为白色
了解完后我们将选中图片进行颜色空间变换
代码如下:
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("C:/opencv/lena.png");
Mat img32;
img.convertTo(img32, CV_32F, 1 / 255.0, 0);
Mat HSV, HSV32;
cvtColor(img, HSV, COLOR_BGR2HSV);
cvtColor(img32, HSV32, COLOR_BGR2HSV);
return 0;
}
运行结果如下:(在image Watch中放大图片可以查看颜色元素取值)