#include<opencv2/opencv.hpp>
#include<iostream>
#include<vector>
using namespace cv;
using namespace std;
int main()
{
Mat srcImage = imread("1.jpg");
Mat compareImage = imread("2.jpg");
imshow("【原图】", srcImage);
imshow("【需要比较的图像】", compareImage);
//在比较直方图时,最佳操作是在HSV空间中操作,所以需要将BGR空间转换为HSV空间
Mat srcHsvImage;
Mat compareHsvImage;
cvtColor(srcImage, srcHsvImage, CV_BGR2HSV);
cvtColor(compareImage, compareHsvImage, CV_BGR2HSV);
//采用H-S直方图进行处理
//首先得配置直方图的参数
MatND srcHist, compHist;
//H、S通道
int channels[] = { 0, 1 };
int histSize[] = { 30, 32 };
float HRanges[] = { 0, 180 };
float SRanges[] = { 0, 256 };
const float *ranges[] = { HRanges, SRanges };
//进行原图直方图的计算
calcHist(&srcHsvImage, 1, channels, Mat(), srcHist, 2, histSize, ranges, true, false);
//对需要比较的图进行直方图的计算
calcHist(&compareHsvImage, 1, channels, Mat(), compHist, 2, histSize, r
opencv3 对比直方图-compareHist函数
最新推荐文章于 2022-09-04 13:13:24 发布