使用哈里斯算法特征的图像识别



我是图像处理的新手,请您帮助使用Harrise角纳检测算法进行图像识别。
我想在我的示例图像中运行哈里斯算法,检测它的角落。比在主图像上运行相同的算法,我正在尝试在其中识别示例图像。将主图像中的特征与示例图像中的特征进行比较后。
但我不确定这些特征是否是坐标,如果哈里斯算法返回的特征是坐标,那么我应该比较什么?
这是我的代码:

import cv2
import numpy as np
filename_sign = 'E:/Documents/Python/sample.jpg'
filename_photo = 'E:/Documents/Python/main.jpg'
img_sign = cv2.imread(filename_sign)
gray_sign = cv2.cvtColor(img_sign,cv2.COLOR_BGR2GRAY)
gray_sign = np.float32(gray)
dst_sign = cv2.cornerHarris(gray_sign,2,3,0.04)
img_photo = cv2.imread(filename_photo)
gray_photo= cv2.cvtColor(img_sign,cv2.COLOR_BGR2GRAY)
gray_photo= np.float32(gray)
dst_photo= cv2.cornerHarris(gray_photo,2,3,0.04)

我的问题是:
1(我可以使用此方法识别另一个图像上的示例图像
吗 2(如何将dst_sign特征与dst_photo进行比较?

哈里斯角探测器有更好的替代品,效率更高,可能会提供更好的结果。opencv 团队开发的 ORB 特征检测器和描述符是一个很好的选择。

探测器(带orb.detect()(查找图像中的特征。这些就是你所说的角落。然后,您将使用orb.compute()来计算这些关键点的描述符。这些基本上从方向、位置等方面描述了特征。然后,您可以使用这些描述符来查找图像之间的匹配项,例如,使用cv2.BFMatcher()

以下是您可以使用的非常好的教程:

球: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_orb/py_orb.html

功能匹配:http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html#matcher

编辑:但是,如果要执行对象检测,则有替代方法,例如使用模板匹配,或者可以使用机器学习技术(如HOG SVM(来检测对象。

最新更新