博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像相似度计算之直方图方法OpenCV实现
阅读量:5937 次
发布时间:2019-06-19

本文共 1492 字,大约阅读时间需要 4 分钟。

hot3.png

操作步骤:

1.      载入图像(灰度图或者彩色图),并使其大小一致;

2.      若为彩色图,增进行颜色空间变换,从RGB转换到HSV,若为灰度图则无需变换;

3.      若为灰度图,直接计算其直方图,并进行直方图归一化;

4.      若为彩色图,则计算其彩色直方图,并进行彩色直方图归一化;

5.      使用相似度公式,如相关系数、卡方、相交或巴氏距离,计算出相似度值。

string strSrcImageName = "src.jpg";    cv::Mat matSrc, matSrc1, matSrc2;    matSrc = cv::imread(strSrcImageName, CV_LOAD_IMAGE_UNCHANGED);    cv::resize(matSrc, matSrc1, cv::Size(357, 419), 0, 0, cv::INTER_NEAREST);  cv::resize(matSrc, matSrc2, cv::Size(2177, 3233), 0, 0, cv::INTER_LANCZOS4);    cv::Mat matDst1, matDst2;  cv::Size sizeImage = cv::Size(500, 500);     cv::resize(matSrc1, matDst1, sizeImage, 0, 0, cv::INTER_CUBIC);  //cv::flip(matDst1, matDst1, 1);  cv::resize(matSrc2, matDst2, sizeImage, 0, 0, cv::INTER_CUBIC);    if (matSrc.channels() == 1) {      int histSize = 256;      float range[] = {0, 256};      const float* histRange = {range};      bool uniform = true;      bool accumulate = false;        cv::Mat hist1, hist2;        cv::calcHist(&matDst1, 1, 0, cv::Mat(), hist1, 1, &histSize, &histRange, uniform, accumulate);      cv::normalize(hist1, hist1, 0, 1, cv::NORM_MINMAX, -1, cv::Mat());        cv::calcHist(&matDst2, 1, 0, cv::Mat(), hist2, 1, &histSize, &histRange, uniform, accumulate);      cv::normalize(hist2, hist2, 0, 1, cv::NORM_MINMAX, -1, cv::Mat());        double dSimilarity = cv::compareHist(hist1, hist2, CV_COMP_CORREL);//,CV_COMP_CHISQR,CV_COMP_INTERSECT,CV_COMP_BHATTACHARYYA        cout<<"similarity = "<
<

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/1426828/blog/1790796

你可能感兴趣的文章
如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?
查看>>
论代码审查的重要性
查看>>
「docker实战篇」python的docker爬虫技术-导学(一)
查看>>
linux日志基础介绍
查看>>
如何关闭SElinux
查看>>
处理器之MMU(三)
查看>>
172.16.82.0/25的含义,IP段,掩码
查看>>
测试之路
查看>>
终于对了
查看>>
RabbitMQ集群
查看>>
Apache防盗链和隐藏版本信息
查看>>
ARP协议与路由
查看>>
使用pypiserver搭建私有源
查看>>
SCI检索介绍
查看>>
Android开发之生成自己的签名文件及App签名打包
查看>>
如何提高阿里云上应用的可用性(二)
查看>>
云宏WinCloud前端工程师告诉你什么是UI扁平化
查看>>
如何压缩PDF文件,有什么简单的方法
查看>>
SpringMVC常用注解标签详解
查看>>
day18 Set集合
查看>>