C++ 从输入图像中提取色调范围

C++ 从输入图像中提取色调范围,c++,opencv,C++,Opencv,如何从输入图像中提取色调范围?我想从图像中提取色调低和色调高,以便在匹配中使用。您需要将图像转换为HSV颜色空间,然后将其拆分为3个通道分量,然后从色调通道中找到最小值和最大值: Mat img = imread("c:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg"); Mat hsvMat; cvtColor(img, hsvMat, CV_BGR2HSV); // Convert image to HSV col

如何从输入图像中提取色调范围?我想从图像中提取色调低和色调高,以便在匹配中使用。

您需要将图像转换为HSV颜色空间,然后将其拆分为3个通道分量,然后从色调通道中找到最小值和最大值:

Mat img = imread("c:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg");

Mat hsvMat;
cvtColor(img, hsvMat, CV_BGR2HSV); // Convert image to HSV colorspace

vector<Mat> hsvChannels;
split(hsvMat, hsvChannels); // Split the HSV image into the 3 channels

Mat hue = hsvChannels[0]; // This is the hue image

// Find minimum and maximum hue
double minHue = -1;
double maxHue = -1;
cv::minMaxLoc(hue, &minHue, &maxHue, nullptr, nullptr);

cout << "Min hue=" << minHue << " Max hue=" << maxHue << endl;
Mat img=imread(“c:\\Users\\Public\\Pictures\\Sample Pictures\\jummy.jpg”);
Mat-hsvMat;
CVT颜色(img、hsvMat、CV_BGR2HSV);//将图像转换为HSV颜色空间
矢量hsv信道;
拆分(hsvMat、HSV通道);//将HSV图像分割为3个通道
Mat色调=HSV通道[0];//这是色调图像
//找到最小和最大色调
双明休=-1;
双maxHue=-1;
cv::minMaxLoc(色调,&minHue,&maxHue,nullptr,nullptr);
库特