图像直方图反向投影,Python OpenCV 取经之旅第 28 天
Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。
基础知识铺垫
通过直方图的反向投影,可以在图像 A 中查找特定的图像 B,一般情况下图像 A 比较大,图像 B 比较小或者图像 B 只有 1 个像素。
可以查找到最匹配的区域图像或者像素点。
翻译的理论一些就是,定位模板图像在输入图像中的位置。
在翻译成白话,就是计算图像为某一特征的直方图模型,然后使用模型去寻找图像中存在的该特征。
如果深究下去,图像的反向投影涉及的数学知识点也非常多,不过,取经之旅初期,咱们不深究这些内容。
cv2.calcBackProject 函数
在 Python OpenCV 中提供了一个用于实现反向投影的函数 <kbd>cv2.calcBackProject</kbd> 。
下面我们具体学习一下该函数如何使用。
函数原型说明
参数说明如下:
<kbd>images</kbd> :输入图像,注意加
[]
;<kbd>channels</kbd>:通道,通道数必须与直方图维度相匹配,
<kbd>hist</kbd>:图象的直方图;
<kbd>ranges</kbd>:直方图的变化范围;
<kbd>scale</kbd>:输出反投影的可选比例因子。
案例 Demo 如下:
先看一下运行效果。
不过这个效果实在不是很理想,为了获取到更精确的值,我增加了一个滑动条。
修改代码成如下这个样子。
反复调整之后,发现直方图反向投影,除了给橡皮擦增加一个函数认知外,并没有产生过多的思考,可能学习的还不够深入,总之把这个函数收入脑中,日后再次出现的时候,我们拿出来在品味一下。
补充一下官方说明地址:点击查阅
橡皮擦的小节
希望今天的 1 个小时,你有所收获,我们下篇博客见~
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/fc2dcc521aaa36baa2212fb34】。文章转载请联系作者。
评论