☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░
博文传送门:
老猿关于HTM变换的博文目录请见:
http://iyenn.com/rec/324533.html OpenCV-Python击中击不中HITMISS形态变换详解
老猿在学习OpenCV HITMISS形态变换过程中查阅了大量资料,这些资料的内容主要集中在原理介绍、OpenCV的支持函数介绍,仅有少部分涉及案例、且这些案例大多没有多少价值,这些资料大部分资料是交叉甚至重叠的,如果大家学习过程中再去全部查阅一遍会浪费大量时间和精力。
下面是老猿学习OpenCV HITMISS形态变换过程中查阅的公开资料中,个人认为比较有价值的资料,在此列出供大家参考。
一、Opencv图像识别从零到精通(18)-------击中击不中: http://iyenn.com/index/link?url=http://www.bubuko.com/infodetail-1683783.html
该文介绍了击中击不中的原理和算法,关键内容摘抄如下:
Hit-miss原理:
基于腐蚀运算的一个特性:腐蚀的过程相当于对可以填入结构元素的位置作标记的过程。
腐蚀中,虽然标记点取决于原点在结构元素中的相对位置,但输出图像的形状与此无关,改变原点的位置,只会导致输出结果发生平移。 既然腐蚀的过程相当于对可以填入结构元素的位置作标记的过程,可以利用腐蚀来确定目标的位置。 进行目标检测,既要检测到目标的内部,也要检测到外部,即在一次运算中可以同时捕获内外标记。 由于以上两点,采用两个结构基元H、M,作为一个结构元素对B=(H,M),一个探测目标内部,一个探测目标外部。当且仅当H平移到某一点可填入X的内部,M平移到该点可填入X的外部时,该点才在击中击不中变换的输出中。
Hit-miss算法步骤:
击中击不中变换是形态学中用来检测特定形状所处位置的一个基本工具。它的原理就是使用腐蚀;如果要在一幅图像A上找到B形状的目标,我们要做的是:
- 首先,建立一个比B大的模板W;使用此模板对图像A进行腐蚀,得到图像假设为Process1;
- 其次,用B减去W,从而得到V模板(W-B);使用V模板对图像A的补集进行腐蚀,得到图像假设为Process2;
- 然后,Process1与Process2取交集;得到的结果就是B的位置。这里的位置可能不是B的中心位置,要视W-B时对齐的位置而异。
二、OpenCV中一个最容易搞错的形态学操作 :http://iyenn.com/index/link?url=https://cloud.tencent.com/developer/article/1589572
该文是腾讯云的贾志刚-OpenCV学堂博客的一篇文章,同样介绍了原理和算法,不过没有上面那篇文章详细,另外该文借鉴了OpenCV官网的矩阵案例图解,作者自己肯定是完全弄懂了的,只不过写得还不很透彻,最后该文还有两个图形处理应用案例,不过案例代码中调用两次HTM变换,在没有完全弄懂相关知识时会容易让人误解。详细的内容大家参考原文,在此不进行摘抄了。不过其处理的两个图像案例,老猿准备在后面的博文中作为案例介绍和讲解。
三、opencv—击中击不中 :http://iyenn.com/rec/326425.html
这篇文章本身的内容并无多少出彩之处,老猿之所以拿出来说,是因为这个案例的图像很有意思,老猿准备在后面也作为案例介绍。
四、形态学操作——击中击不中变换 :http://iyenn.com/rec/326426.html
这篇文章同样介绍了击中击不中HITMISS形态变换的原理和算法,另外还提供了一个算法的C语言实现,可以让人对算法的实现有比较深的理解。
五、OpenCV官网资料
老猿最后解决的一些疑难问题主要是在查阅众多资料包含官网资料基础上,最后再次详细阅读官网资料的内容后解决的。相关官网文档请到http://iyenn.com/index/link?url=https://docs.opencv.org/下载。
小结:
本文介绍了老猿学习击中击不中变换过程中觉得有价值的参考资料,结合这些资料的介绍对击中击不中的原理及算法会有比较清晰的理解,但这些原理和算法并不能让人很清晰地知道怎么调用OpenCV的HTM变化,上述文章的案例虽然有涉及,但一方面有些文章对于初学者容易产生误导,另一方面对于OpenCV的具体实现讲得也不是很透彻。如果阅读上述文章能让你完全理解击中击不中变换,则你至少在自学这方面的能力不低于老猿,如果你尚不能完全理解,存在疑问,这是完全正常的,老猿接下来的文章将帮助你解决这些问题。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
更多OpenCV-Python的介绍请参考专栏《OpenCV-Python图形图像处理 》
专栏网址:http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9979286.html
关于老猿的付费专栏
- 付费专栏《使用PyQt开发图形界面Python应用 http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9607725.html 》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《使用PyQt开发图形界面Python应用专栏目录 》(http://iyenn.com/rec/324324.html);
- 付费专栏《moviepy音视频开发专栏 http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_10232926.html)详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《moviepy音视频开发专栏文章目录》(http://iyenn.com/rec/324326.html);
- 付费专栏《OpenCV-Python初学者疑难问题集 http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_10581071.html》为《OpenCV-Python图形图像处理 http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9979286.html》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《OpenCV-Python初学者疑难问题集专栏目录 http://iyenn.com/rec/324329.html》。
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《OpenCV-Python图形图像处理 http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9979286.html》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》(http://iyenn.com/index/link?url=https://blog.csdn.net/laoyuanpython/category_9831699.html)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
跟老猿学Python、学OpenCV!
☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░



评论记录:
回复评论: