OpenCV用cv::cvtColor 函数把BGR 图像转换成另一种色彩空间,用色调、饱和度和亮度表示颜色,这里使用转换代码CV_BGR2HSV。源代码如下:
#include <vector>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/types_c.h>
using namespace cv;
int main()
{
Mat image = imread("美少女.jpg");
vector<Mat> channels;
Mat hsv;
cvtColor(image, hsv, CV_BGR2HSV);
split(hsv, channels);
imshow("通道0", channels[0]); // channels[0]是色调
imshow("通道1", channels[1]); // channels[1]是饱和度
imshow("通道2", channels[2]); // channels[2]是亮度
waitKey(0);
return 0;
}
运行结果如下:
原图
三通道图