一、问题描述
调用OpenCV中函数,将图像变换到HSV颜色空间,并将H、S、V三个颜色通道分别用灰度图显示,并改变H、S、V各通道的值观察图片的变化。
H: 0~180 S: 0~255 V: 0~255
二、示例代码
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
Mat srcImage1, dstImage1, dstImage2;
String imagePath = "C:/Users/admin/Pictures/1.2.png";
int main()
{
//imaread(path,[flag])
srcImage1 = imread(imagePath, 1);
imshow("原图", srcImage1);
cvtColor(srcImage1, dstImage1, COLOR_RGB2HSV);
/*
Hue(色调、色相)
Saturation(饱和度、色彩纯净度)
Value(明度)
*/
imshow("HSV",dstImage1);
vector<Mat> channels;
split(dstImage1, channels);//分离HSV
imshow("V2GRAY", channels[0]);
imshow("S2GRAY", channels[1]);
imshow("H2GRAY", channels[2]);
/*
//以下代码是错误的HSV分割,单通道的H、S、V图片是灰的,仅split就好ÿ