gpt4 book ai didi

python - 使用Harris算法功能进行图像识别

转载 作者:行者123 更新时间:2023-12-02 17:41:10 24 4
gpt4 key购买 nike

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

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()查找图像之间的匹配项

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

ORB:
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

编辑:如果您要执行对象检测,但是,还有其他替代方法,例如使用template matching,或者您可以使用机器学习技术(例如HOG SVM)来检测对象。

关于python - 使用Harris算法功能进行图像识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com