此方法比较准确

还行

此方法不怎么行

此方法比较准确

#include<opencv2\highgui\highgui.hpp>
#include<opencv2\opencv.hpp>
#include<iostream>
#include<math.h>
using namespace std;
using namespace cv;
string convertToString(double d);
int main()
{Mat base, test1, test2;Mat hsvbase, hsvtest1, hsvtest2;base = imread("E:\\vs2015\\opencvstudy\\24police2.png");if (base.empty()){cout << "could not load the src image!" << endl;return -1;}test1 = imread("E:\\vs2015\\opencvstudy\\24police3.png");test2 = imread("E:\\vs2015\\opencvstudy\\24police4.png");cvtColor(base, hsvbase, CV_BGR2HSV);cvtColor(test1, hsvtest1, CV_BGR2HSV);cvtColor(test2, hsvtest2, CV_BGR2HSV);int h_bins = 50;int s_bins = 50;int histSize[] = { h_bins,s_bins };//hue varies from 0 to 179,saturation from 0 to 255float h_ranges[] = { 0,180 };float s_ranges[] = { 0,256 };const float* range[] = { h_ranges,s_ranges };//Use the 0-th or 1-st channelsint channels[] = { 0,1 };MatND hist_base;  //MatND表示多通道MatND hist_test1;MatND hist_test2;calcHist(&hsvbase,1, channels, Mat(), hist_base,2, histSize, range, true, false);normalize(hist_base, hist_base, 0, 1, NORM_MINMAX, -1, Mat());  //Mat() 代表mask为空calcHist(&hsvtest1, 1, channels, Mat(), hist_test1, 2, histSize, range, true, false);normalize(hist_test1, hist_test1, 0, 1, NORM_MINMAX, -1, Mat());  //Mat() 代表mask为空calcHist(&hsvtest2, 1, channels, Mat(), hist_test2, 2, histSize, range, true, false);normalize(hist_test2, hist_test2, 0, 1, NORM_MINMAX, -1, Mat());  //Mat() 代表mask为空double basebase = compareHist(hist_base, hist_base, CV_COMP_CORREL);double basetest1 = compareHist(hist_base, hist_test1, CV_COMP_CORREL);double basetest2 = compareHist(hist_base, hist_test1, CV_COMP_CORREL);double test1test2 = compareHist(hist_test1, hist_test2, CV_COMP_CORREL);Mat test12;test2.copyTo(test12);putText(base, convertToString(basebase), Point(50, 50), CV_FONT_HERSHEY_COMPLEX, 1, Scalar(0, 0, 255), 2, LINE_AA);putText(test1, convertToString(basetest1), Point(50, 50), CV_FONT_HERSHEY_COMPLEX, 1, Scalar(0, 0, 255), 2, LINE_AA);putText(test2, convertToString(basetest2), Point(50, 50), CV_FONT_HERSHEY_COMPLEX, 1, Scalar(0, 0, 255), 2, LINE_AA);putText(test12, convertToString(basebase), Point(50, 50), CV_FONT_HERSHEY_COMPLEX, 1, Scalar(0, 0, 255), 2, LINE_AA);imshow("base", base);imshow("test1", test1);imshow("test2", test2);imshow("test12", test12);waitKey();return 0;
}string convertToString(double d)
{ostringstream os;if (os << d){return os.str();}return "invalid conversion";
}

opencv24-直方图比较相关推荐

  1. 直方图_20210420

    20220331 multiple full import matplotlib.pyplot as plt import pandas as pd import seaborn as sns iri ...

  2. Python数据挖掘:绘制直方图,设置上下限和步长,绘制子图

    有任何问题欢迎在评论区提出! 绘制直方图: ''' 来源:天善智能韦玮老师 课堂笔记 作者:Dust 直方图hist某一段数据出现的频数 ''' import numpy as npy import ...

  3. Python:matplotlib实践:直方图、散点图展示、变色、线条变换、点样式变换、添加名称、设置横纵轴范围、在一张图上显示多条线

    直方图: ''' 来源:天善智能韦玮老师课堂笔记 作者:Dust ''' # 折线图.散点图 import matplotlib.pylab as pyl import numpy as npy x= ...

  4. 记录一次没有收集直方图优化器选择全表扫描导致CPU耗尽

    场景:数据库升级第二天,操作系统CPU使用率接近100%. 查看ash报告: 再看TOP SQL 具体SQL: select count(1) as chipinCount, sum(bets) as ...

  5. 【Opencv】直方图函数 calchist()

    calchist函数需要包含头文件 #include <opencv2/imgproc/imgproc.hpp> 函数声明(三个重载 calchist函数): //! computes t ...

  6. 《OpenCV3编程入门》学习笔记9 直方图与匹配(四)反向投影(back projection)

    9.4 反向投影(back projection) 9.4.1 反向投影原理 1.基本思想:   反向投影中储存的数值代表了图像中该像素属于区域的概率,计算某一特征的直方图模型,使用模型寻找图像中存在 ...

  7. 《OpenCV3编程入门》学习笔记9 直方图与匹配(三)直方图对比

    9.3 直方图对比 9.3.1 对比直方图:compareHist()函数 1.作用:   比较两幅直方图 2.函数原型: (1)double compareHist(InputArray H1,In ...

  8. 《OpenCV3编程入门》学习笔记9 直方图与匹配(一二) 图像直方图概述直方图的计算与绘制

    第9章 直方图与匹配 9.1 图像直方图(Histogram)概述 1.作用:   在每个兴趣点设置一个有相近特征的直方图所构成的标签,通过标记帧与帧之间显著的边缘.颜色.角度等特征的统计变化,来检测 ...

  9. 《OpenCV3编程入门》学习笔记7 图像变换(五 )直方图均衡化

    7.5 直方图均衡化 7.5.1 概念 1.图像增强处理,图像的像素灰度变化是随机的,直方图图像高低不齐,用一定算法使直方图大致平和,通过拉伸像素强度分布范围来增强图像对比度 2.均衡化处理后的图像只 ...

  10. OpenCV+python:直方图的应用(一)

    1,直方图均衡化 (Histogram Equalization) 假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低.直方图均衡化,对图像进行非线性拉伸,重新分 ...

最新文章

  1. MPB:中科院城环所杨军组-​​淡水浮游细菌群落采集、过滤与保存
  2. qiime2安装和使用案例
  3. 【物理方程】物理学中最难的方程之一,你知道多少?
  4. visual studio 工具箱(选项卡、无控件、灰图标)
  5. win32创建控件的一些问题
  6. 基于fpga的计算机组成原理,清华大学出版社-图书详情-《基于FPGA与Verilog的计算机组成原理实践》...
  7. List, Set, Map是否继承自Collection接口?
  8. [Leetcode总结] 101.对称二叉树
  9. 《构建之法》阅读笔记04
  10. shell 编程(难题分析)
  11. jquery 特效专辑
  12. C++ 编写 CorelDRAW CPG 插件例子(1)—WelcomeScreen
  13. subli快速度创建html,Shortcut to comment out a block of code with subli
  14. python条形堆积图_python – 带有中心标签的堆积条形图
  15. MyEclipse10安装破解教程
  16. 一个简单的抓取百度热度数据并可视化的demo
  17. 有3n个花盆,红色、蓝色和黄色的各n个。开始时排列的顺序是混乱的,如黄、红、蓝、黄、黄、蓝、黄、红、红……
  18. 51单片机通过DHT11温度传感器读取温度(2)
  19. 安卓html调色器,5个超棒的在线配色神器
  20. Python文本情感分析实战【源码】

热门文章

  1. mysql中union 查询
  2. ambari 修改服务器名,Ambari修改主页面方法
  3. 不删除旧版本java_Linux 卸载旧版jdk 并安装新版jdk(转)
  4. hbase可视化工具_做数据可视化,三大热门BI工具试用总结
  5. account表里有什么 银行_模拟一个银行账户类Account,账户类中包括所有者、账号、余额、账户总数、存款、取款等信息。_学小易找答案...
  6. 没有工作经验找it_校招和社招有什么区别?没有工作经验,如何找工作?
  7. php中统计记录条数,使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
  8. linux查看帮助文档的命令,Linux如何使用查看一个命令的帮助文档呢?
  9. 深入jvm虚拟机第三版源码_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...
  10. c++上传oss中文路径报错_C# 从Oss对象存储器上下载文件到本地打包下载代码