opencv24-直方图比较
此方法比较准确
还行
此方法不怎么行
此方法比较准确
#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-直方图比较相关推荐
- 直方图_20210420
20220331 multiple full import matplotlib.pyplot as plt import pandas as pd import seaborn as sns iri ...
- Python数据挖掘:绘制直方图,设置上下限和步长,绘制子图
有任何问题欢迎在评论区提出! 绘制直方图: ''' 来源:天善智能韦玮老师 课堂笔记 作者:Dust 直方图hist某一段数据出现的频数 ''' import numpy as npy import ...
- Python:matplotlib实践:直方图、散点图展示、变色、线条变换、点样式变换、添加名称、设置横纵轴范围、在一张图上显示多条线
直方图: ''' 来源:天善智能韦玮老师课堂笔记 作者:Dust ''' # 折线图.散点图 import matplotlib.pylab as pyl import numpy as npy x= ...
- 记录一次没有收集直方图优化器选择全表扫描导致CPU耗尽
场景:数据库升级第二天,操作系统CPU使用率接近100%. 查看ash报告: 再看TOP SQL 具体SQL: select count(1) as chipinCount, sum(bets) as ...
- 【Opencv】直方图函数 calchist()
calchist函数需要包含头文件 #include <opencv2/imgproc/imgproc.hpp> 函数声明(三个重载 calchist函数): //! computes t ...
- 《OpenCV3编程入门》学习笔记9 直方图与匹配(四)反向投影(back projection)
9.4 反向投影(back projection) 9.4.1 反向投影原理 1.基本思想: 反向投影中储存的数值代表了图像中该像素属于区域的概率,计算某一特征的直方图模型,使用模型寻找图像中存在 ...
- 《OpenCV3编程入门》学习笔记9 直方图与匹配(三)直方图对比
9.3 直方图对比 9.3.1 对比直方图:compareHist()函数 1.作用: 比较两幅直方图 2.函数原型: (1)double compareHist(InputArray H1,In ...
- 《OpenCV3编程入门》学习笔记9 直方图与匹配(一二) 图像直方图概述直方图的计算与绘制
第9章 直方图与匹配 9.1 图像直方图(Histogram)概述 1.作用: 在每个兴趣点设置一个有相近特征的直方图所构成的标签,通过标记帧与帧之间显著的边缘.颜色.角度等特征的统计变化,来检测 ...
- 《OpenCV3编程入门》学习笔记7 图像变换(五 )直方图均衡化
7.5 直方图均衡化 7.5.1 概念 1.图像增强处理,图像的像素灰度变化是随机的,直方图图像高低不齐,用一定算法使直方图大致平和,通过拉伸像素强度分布范围来增强图像对比度 2.均衡化处理后的图像只 ...
- OpenCV+python:直方图的应用(一)
1,直方图均衡化 (Histogram Equalization) 假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低.直方图均衡化,对图像进行非线性拉伸,重新分 ...
最新文章
- MPB:中科院城环所杨军组-​​淡水浮游细菌群落采集、过滤与保存
- qiime2安装和使用案例
- 【物理方程】物理学中最难的方程之一,你知道多少?
- visual studio 工具箱(选项卡、无控件、灰图标)
- win32创建控件的一些问题
- 基于fpga的计算机组成原理,清华大学出版社-图书详情-《基于FPGA与Verilog的计算机组成原理实践》...
- List, Set, Map是否继承自Collection接口?
- [Leetcode总结] 101.对称二叉树
- 《构建之法》阅读笔记04
- shell 编程(难题分析)
- jquery 特效专辑
- C++ 编写 CorelDRAW CPG 插件例子(1)—WelcomeScreen
- subli快速度创建html,Shortcut to comment out a block of code with subli
- python条形堆积图_python – 带有中心标签的堆积条形图
- MyEclipse10安装破解教程
- 一个简单的抓取百度热度数据并可视化的demo
- 有3n个花盆,红色、蓝色和黄色的各n个。开始时排列的顺序是混乱的,如黄、红、蓝、黄、黄、蓝、黄、红、红……
- 51单片机通过DHT11温度传感器读取温度(2)
- 安卓html调色器,5个超棒的在线配色神器
- Python文本情感分析实战【源码】
热门文章
- mysql中union 查询
- ambari 修改服务器名,Ambari修改主页面方法
- 不删除旧版本java_Linux 卸载旧版jdk 并安装新版jdk(转)
- hbase可视化工具_做数据可视化,三大热门BI工具试用总结
- account表里有什么 银行_模拟一个银行账户类Account,账户类中包括所有者、账号、余额、账户总数、存款、取款等信息。_学小易找答案...
- 没有工作经验找it_校招和社招有什么区别?没有工作经验,如何找工作?
- php中统计记录条数,使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
- linux查看帮助文档的命令,Linux如何使用查看一个命令的帮助文档呢?
- 深入jvm虚拟机第三版源码_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...
- c++上传oss中文路径报错_C# 从Oss对象存储器上下载文件到本地打包下载代码