使用OpenCV实现Halcon算法(2)形状匹配,shape_based_matching

1、GeoMatch ,Edge-Based-Template-Matching

用opencv编写的形状匹配算法,但不具旋转和缩放功能。

https://www.codeproject.com/KB/graphics/Edge_Based_template_match/GeoMatch_src.zip

https://www.codeproject.com/Articles/99457/Edge-Based-Template-Matching

https://download.csdn.net/download/zfjbit/10732568 GeoMatch_src(VS2015+OpenCv3.3版)

2、shape_based_matching

try to implement halcon shape based matching, refer to machine vision algorithms and applications, page 317 3.11.5, written by halcon engineers

https://github.com/meiqua/shape_based_matching

https://github.com/daxiaHuang/shape_based_matching_subpixel

opencv实现基于边缘的形状匹配算法

https://github.com/zhouqun92/ShapeMatch

3、图像匹配算法分为3类:基于灰度的匹配算法、基于特征的匹配算法、基于关系的匹配算法

(1)基于灰度的模板匹配算法:模板匹配(Blocking Matching)是根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像。基于灰度的匹配算法也称作相关匹配算法,用空间二维滑动模板进行匹配,不同匹配算法主要体现在相关准则的选择方面,常见的基于模板的匹配算法可以参考下面的链接:

参考:基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法

http://blog.csdn.net/hujingshuang/article/details/47759579

(2)基于特征的匹配算法:首先提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。图像的特征主要可以分为点、线(边缘)、区域(面)等特征,也可以分为局部特征和全局特征。

区域(面)特征提取比较麻烦,耗时,因此主要用点特征和边缘特征。

点特征包括:Harris 、Moravec、KLT、SIFT、SURF 、BRIEF、SUSAN、FAST、CENSUS、FREAK(点击打开链接)、BRISK(点击打开链接)、ORB、光流法(点击打开链接)、A-KAZE等。

边缘特征包括:LoG算子、Robert算子、Sobel算子、Prewitt算子、Canny算子等。

对于所有类型的几何变换,SIFT和BRISK的总体精度最高,SIFT被认为是最精确的算法。定量比较表明,特征检测描述器检测大量特征的能力的一般顺序为:

ORB>BRISK>SURF>SIFT>AKAZE>KAZE

特征检测描述器的整体图像匹配速度顺序为:

ORB (1000) >BRISK (1000) >AKAZE>KAZE>SURF (64D)>SIFT>ORB>BRISK>SURF (128D)

(3)基于关系的匹配算法:建立语义的网络,是人工智能领域在图像处理中的应用,但还没有突破性的进展。

 

 

---

参考文献,摘自知乎:计算机视觉中,目前有哪些成熟的匹配定位算法?

1、可以看一下主流的商业机器视觉库,比如Halcon,康耐视的VisionPro及它的PatMax专利算法,OpenVision里的Match和Find模块,这些商业库里的匹配算法都占有很高的篇幅和重要性,而它们的鲁棒性也不是一般算法可以比拟的。

再推荐一本书,《机器视觉算法及应用 Machine vision algorithm and Application》,是Halcon的资深研发人员写的,有一章,模版匹配,里有介绍Halcon里实现的匹配算法的实现原理。

http://product.dangdang.com/1511962373.html

http://product.dangdang.com/1521862365.html

2、可以用一些工具 (在Github上搜索Find-Object或者Template matching) 实际看看

3、GMS了解一下;要求实时(精度也不差): orb+GMS;要求精度: A-SIFT+GMS;相同程度匹配,速度精度比RANSAC效果好

4、sift/surf+flann+ransac,一般情况都好使

SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT)

SURF,(SpeededUpRobustFeatures),是对SIFT的一种改进,主要特点是快速。

Sift算法的优点是特征稳定,对旋转、尺度变换、亮度保持不变性,对视角变换、噪声也有一定程度的稳定性;缺点是实时性不高,并且对于边缘光滑目标的特征点提取能力较弱。
Surf(Speeded Up Robust Features)改进了特征的提取和描述方式,用一种更为高效的方式完成特征的提取和描述。

5、Face Detection,Template Matching , SURF , SIFT to detect features and keypoints in images .

https://github.com/vishalgolcha/ImageMatching

https://blog.csdn.net/qq21497936/article/details/107348874  cv::BFMatcher暴力匹配

6、opencv+python实现图像匹配----模板匹配、特征点匹配

https://blog.csdn.net/zhuisui_woxin/article/details/84400439

Python 使用Opencv实现图像特征检测与匹配

https://blog.csdn.net/HuangZhang_123/article/details/80660688

自动驾驶汽车视觉- 图像特征提取与匹配技术

https://zhuanlan.zhihu.com/p/133301967

https://github.com/williamhyin/SFND_2D_Feature_Tracking

 

 

 

你可能感兴趣的:(OpenCV)