opencv 直方图对比

来源:互联网 发布:php二次开发用什么 编辑:程序博客网 时间:2024/05/25 21:35
直方图对比的函数是compareHist(),传入的参数有三个,前两个为直方图,第三个为采用什么方法计算相似度
#include "stdafx.h"#include<opencv2\imgproc\imgproc.hpp>#include<opencv2\highgui\highgui.hpp>#include<iostream>using namespace std;using namespace cv;int main(){Mat srcImage1, srcImage2;srcImage1 = imread("1.jpg", 0);srcImage2 = imread("2.jpg", 0);if (!srcImage1.data || !srcImage2.data){cout << "图像读入错误..."<<endl;return 0;}imshow("原图像1", srcImage1);imshow("原图像2", srcImage2);MatND dstHist1;MatND dstHist2;int dims = 1;float hrange[] = { 0,255 };const float *ranges[] = { hrange };int size = 256;calcHist()int channels = 0;calcHist(&srcImage1, 1, &channels, Mat(), dstHist1, dims, &size, ranges);calcHist(&srcImage2, 1, &channels, Mat(), dstHist2, dims, &size, ranges);double res1 = compareHist(dstHist1, dstHist2, 0);double res2 = compareHist(dstHist1, dstHist2, 1);double res3 = compareHist(dstHist1, dstHist2, 2);double res4 = compareHist(dstHist1, dstHist2, 3);cout << "correction:" << res1 << ",卡方:" << res2 << ",直方图相交:" << res3 << ",Bhattacharyya:" << res4 << endl;waitKey(0);return 0;}

阅读全文
0 0