一:直方图反向投影的方法

二:二维直方图的表示

(一)直接显示

def hist2D_demo(image):
hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
hist = cv.calcHist([image],[,],None,[,],[,,,])
cv.imshow("hist2D",hist)

(二)使用matplotlib

def hist2D_demo(image):
hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
hist = cv.calcHist([image],[,],None,[,],[,,,])
plt.imshow(hist,interpolation="nearest")
plt.title("2D Histogram")
plt.show()

三:直方图反向映射

calcHist方法参数可见:OpenCV---图像直方图

def back_projection_demo():
sample = cv.imread("./s2.png")
target = cv.imread("./b.png")
roi_hsv = cv.cvtColor(sample,cv.COLOR_BGR2HSV)
tar_hsv = cv.cvtColor(target,cv.COLOR_BGR2HSV) cv.imshow("sample",sample)
cv.imshow("target",target) roihist = cv.calcHist([roi_hsv], [, ], None, [324, 356], [, , , ])  #加红部分越小,匹配越放松,匹配越全面,若是bsize值越大,则要求得越精细,越不易匹配,所以导致匹配出来的比较小
cv.normalize(roihist,roihist,,,cv.NORM_MINMAX)  #规划到0-255之间
dst = cv.calcBackProject([tar_hsv],[,],roihist,[,,,],) #直方图反向投影
cv.imshow("back_projection_demo",dst)

roihist = cv.calcHist([roi_hsv], [, ], None, [32, 46], [, , , ])  #这是两个通道,bsize变少了,但是他的匹配更加广了(对于匹配的局限放宽了)

opencv 2 归一化函数normalize详解

. 归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。

归一化函数cv2.normalize原型:normalize(src, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]) -> dst 

src参数表示输入数组。

dst参数表示输出与src相同大小的数组,支持原地运算。

alpha参数表示range normalization模式的最小值。

beta参数表示range normalization模式的最大值,不用于norm normalization(范数归一化)模式。

norm_type参数表示归一化的类型。

norm_type参数可以有以下的取值:

NORM_MINMAX:数组的数值被平移或缩放到一个指定的范围,线性归一化,一般较常用。

NORM_INF:归一化数组的C-范数(绝对值的最大值)。

NORM_L1 :归一化数组的L1-范数(绝对值的和)。

NORM_L2 :归一化数组的(欧几里德)L2-范数。
.反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。

函数cv2.calcBackProject用来计算直方图反向投影。

函数原型:calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst

images参数表示输入图像(是HSV图像)。传入时应该用中括号[ ]括起来。

channels参数表示用于计算反向投影的通道列表,通道数必须与直方图维度相匹配。

hist参数表示输入的模板图像直方图。

ranges参数表示直方图中每个维度bin的取值范围 (即每个维度有多少个bin)。

scale参数表示可选输出反向投影的比例因子,一般取1。

OpenCV---直方图反向投影的更多相关文章

  1. OpenCV2马拉松第10圈——直方图反向投影(back project)

    收入囊中 灰度图像的反向投影 彩色图像的反向投影 利用反向投影做object detect 葵花宝典 什么是反向投影?事实上没有那么高大上! 在上一篇博文学到,图像能够获得自己的灰度直方图. 反向投影 ...

  2. opencv——图像直方图与反向投影

    引言 在图像处理中,对于直方图这个概念,肯定不会陌生.但是其原理真的可以信手拈来吗? 本文篇幅有点长,在此列个目录,大家可以跳着看: 分析图像直方图的概念,以及opencv函数calcHist()对于 ...

  3. OpenCV——反向投影(定位模板图像在输入图像中的位置)

    反向投影: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namesp ...

  4. OPENCV直方图与匹配

    直方图可以用来描述不同的参数和事物,如物体的色彩分布,物体的边缘梯度模版以及目标位置的当前假设的概率分布. 直方图就是对数据进行统计的一种方法,并且将统计值定义到一系列定义好的bin(组距)中,获得一 ...

  5. 反向投影(BackProjection)

    如果一幅图像的区域中显示的是一种结构纹理或者一个独特的物体,那么这个区域的直方图可以看作一个概率函数,他给的是某个像素属于该纹理或物体的概率. 所谓反向投影就是首先计算某一特征的直方图模型,然后使用模 ...

  6. OpenCV —— 直方图与匹配

    直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin中.bin中的数值是从数据中计算出来的特征的统计量,这些数据可以是诸如梯度,方向,色彩或任何其他特征. 直方图获得是是数据分布的统计图 ...

  7. openCV 直方图统计

    直方图显示 #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main(int argc ...

  8. OpenCV——直方图均衡化(用于图像增强)

    #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ...

  9. opencv:直方图操作

    示例程序: #include <opencv.hpp> using namespace cv; using namespace std; int main() { Mat src, dst ...

随机推荐

  1. tomcat 最大并发连接数设置

    转自: http://blog.csdn.net/qysh123/article/details/11678903 这是个很简单的问题,但是搜了一圈,发现大家都写错了.所以这里总结一下: 几乎所有的中 ...

  2. Android源码项目目录结构

    src: 存放java代码 gen: 存放自动生成文件的. R.java 存放res文件夹下对应资源的id project.properties: 指定当前工程采用的开发工具包的版本 libs: 当前 ...

  3. 【转】node.js框架比较

    我偶然间看到这篇文章,转这个文章并没有什么含义,仅仅是感觉总结的不错,对于新学node的友友们来说希望这篇文章为大家对 Node.js 后端框架选型带来一些帮助,学习不再迷茫,也是让我有个保存,以后参 ...

  4. lintcode-202-线段树的查询

    202-线段树的查询 对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值. 为Se ...

  5. ansible的介绍和一些基本模块介绍

    必须保证ansible工作站与各个node实现无密码ssh登入 ①:192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible.   ②:文件服务器1到代理服务器3 - 使用 19 ...

  6. windows查看端口占用指令

    1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议    本地地址                     外部地址  ...

  7. Js 中实现重定向的几种方式

    之所以要总结这个,是因为在项目中使用了 AJAX,当请求成功时需要重定向到另一个页面. 1 . <script type="text/javascript"> wind ...

  8. 使用ResourceBundle 类读取 src 下的 xxx.properties 文件

    之前要读取 src 下的 .properties 文件都是使用的类加载器,加载类路径下的资源文件当做一个流来处理,load 到一个 Properties 对象上. jdbc.properties 代码 ...

  9. 第111天:Ajax之jQuery实现方法

    由于jQuery中的Ajax方法是用了内置的deferred模块,是Promise模式的一种实现,而我们这里没有讲过,所以我们就不使用这一模式啦. 我们只定义一个Ajax方法,他可以简单的get,po ...

  10. 【数据库】SQL分组多列统计(GROUP BY后按条件分列统计)

    select whbmbh ,zt,1 as tjsl from fyxx group by zt,whbmbh select whbmbh,sum(case zt when '有效' then 1 ...