具体原理不太懂,就是在一张图转换为直方图在另一张图上进行匹配?

测试图:

            

程序:

#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <opencv2/opencv.hpp>using namespace std;int main()
{IplImage *img_in = cvLoadImage("test01.jpg");IplImage *img_hsv = cvCloneImage(img_in);cvCvtColor(img_in,img_hsv,CV_BGR2HSV);//BGR转HSVIplImage *h_plane_src = cvCreateImage(cvGetSize(img_in),8,1);cvSplit(img_hsv,h_plane_src,NULL,NULL,NULL);//分离出H通道的单通道图像int dims = 1;int size[] = {256};float ranges_h[] ={0,255};float *ranges[] = {ranges_h};CvHistogram *hist_src = cvCreateHist(1,size,CV_HIST_ARRAY,ranges);cvCalcHist(&h_plane_src,hist_src);//计算直方图IplImage *dst = cvLoadImage("test02.jpg");IplImage *hsv_dst = cvCreateImage(cvGetSize(dst),8,3);cvCvtColor(dst,hsv_dst,CV_BGR2HSV);//BGR转HSVIplImage *h_plane_dst = cvCreateImage(cvGetSize(dst),8,1);cvSplit(hsv_dst,h_plane_dst,NULL,NULL,NULL);//分离出H通道的单通道图像IplImage *dst_probability = cvCreateImage(cvGetSize(h_plane_dst),IPL_DEPTH_8U,1);cvZero(dst_probability);cvCalcBackProject(&h_plane_dst,dst_probability,hist_src);//计算概率相似度cout<<cvSum(dst_probability).val[0]<<endl;//计算dst_probability各通道所有像素总和cvShowImage("result",dst_probability);cvThreshold(dst_probability,dst_probability,200,255,CV_THRESH_BINARY);//阈值化cvShowImage("dst1",dst_probability);IplConvKernel *kernel = cvCreateStructuringElementEx(15,15,7,7,CV_SHAPE_RECT);//定义核cvMorphologyEx(dst_probability,dst_probability,NULL,kernel,CV_MOP_OPEN);//形态学开运算cvShowImage("dst2",dst_probability);cvWaitKey();cvReleaseImage(&img_in);cvReleaseImage(&img_hsv);cvReleaseImage(&h_plane_src);cvReleaseImage(&dst);cvReleaseImage(&hsv_dst);cvReleaseImage(&h_plane_dst);cvReleaseHist(&hist_src);cvDestroyAllWindows();
}

运行结果:

最右面的白色区域就是匹配上后经过开运算的结果,还是与设想的比较接近的

cvCalcBackProject() 直方图反向投影匹配相关推荐

  1. Mean Shift算法(2)在OpenCV上的实现目标跟踪——直方图反向投影

    直方图反向投影 直方图反向投影的结果是一个概率分布图,表示一个指定图像片段出现在特定位置的概率.假设我们已经知道图像中某个物体的大致位置,就可以用概率分布图找到物体的准确位置.最可能出现的位置就是窗口 ...

  2. OpenCV中直方图反向投影算法详解与实现

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自:opencv学堂 一:直方图交叉 OpenCV中直方图反向 ...

  3. opencv 直方图反向投影

    转载至:http://www.cnblogs.com/zsb517/archive/2012/06/20/2556508.html 直方图反向投影式通过给定的直方图信息,在图像找到相应的像素分布区域, ...

  4. [python opencv 计算机视觉零基础到实战] 十五 直方图反向投影

    一.学习目标 了解了直方图反向投影的一般流程 了解2D直方图的使用 如有错误欢迎指出~ 二.了解直方图反向投影 2.1 了解2D直方图 需要对直方图进行反向投影,需要使用2D直方图.2D直方图需要使用 ...

  5. OpenCV + CPP 系列(十九)直方图比较 与 直方图反向投影,投影分割

    文章目录 一.直方图比较 计算公式 效果演示 二.直方图反向投影 三.投影分割 一.直方图比较 对输入的两张图像计算得到直方图H1与H2,归一化到相同的尺度空间,然后可以通过计算H1与H2的之间的距离 ...

  6. opencv进阶学习笔记7:直方图,直方图均衡化,直方图比较,直方图反向投影

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 直方图基础讲解: opencv学 ...

  7. opencv 直方图_OpenCV之图像直方图反向投影

    python代码: import cv2 as cv import numpy as np from matplotlib import pyplot as pltdef back_projectio ...

  8. opencv python 直方图反向投影_python OpenCV学习笔记直方图反向投影的实现

    本文介绍了python OpenCV学习笔记直方图反向投影的实现,分享给大家,具体如下: 它用于图像分割或寻找图像中感兴趣的对象.简单地说,它创建一个与我们的输入图像相同大小(但单通道)的图像,其中每 ...

  9. Python+OpenCV:直方图反向投影(Histogram Backprojection)

    Python+OpenCV:直方图反向投影(Histogram Backprojection) Algorithm in Numpy 1. First we need to calculate the ...

  10. python-opencv 图像处理基础 (五)颜色直方图+直方图均衡化+直方图比较+直方图反向投影

    1.颜色直方图 #-------------------------------绘制颜色直方图------ import cv2 import numpy as np import matplotli ...

最新文章

  1. 怎样用cocos2d-x做一个基于地图块的游戏(Part One)
  2. Dagger依赖注入注解的具体作用
  3. cordova sqlite
  4. 适合0基础的web开发系列教程-换行和水平线
  5. 集合数百个常用工具类集合,V2.3.10.104
  6. ElementUI的el-table隐藏id列
  7. python编辑器中文字体倒立的_matplotlib的安装和允许中文及几种字体
  8. 职场新鲜人:为什么女生拼不过男生?
  9. Windows server 2008 搭建×××服务
  10. 关于@synchronized
  11. setuna截图怎么放大缩小_一款强大的电脑截图神器,快速提高工作效率,功能强大!...
  12. 数据库系统概论第五版 答案
  13. mac电脑用计算机名共享打印机,从Mac连接Windows共享打印机(2)
  14. java查询数据导出excel并返回给浏览器下载
  15. 磁盘坏道的检测及修复
  16. Jupyter Notebook误登出怎么办?
  17. 雅虎通可以批量添加MSN用户了
  18. 新时达服务器说明书_新时达调试指导说明书
  19. [转贴]E680新手宝典
  20. android高级应用课程大纲

热门文章

  1. .NET清除Session 的几个方法[clear/removeAll/remove/Abandon]
  2. SEO优化中的div+css命名规则
  3. QQ正常网页无法访问故障分析
  4. arp***的判断与解决方案总结
  5. oracle帐号永久生效,[Linux] alias永久生效
  6. Luogu2216 [HAOI2007]理想的正方形
  7. [2018.08.07 T1] 签到?
  8. vue组件相关知识点
  9. oracle判断字符串以什么开头_sql语句判断字符串以什么什么开头
  10. 不能使用泛型的形参创建对象_泛型就这么简单