Opencv特征匹配

2024-09-24 01:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张大图,上面有很多数字。我有很多这些数字的模板在小图片上

所以,我想比较大的图像和我的模板,以确定相同的图像-并得到正确的数字

在我的例子中,模板匹配不起作用,因为大图像上的小数字可能会被旋转或者有不正常的前景。例如,模板匹配并没有看到6和9之间的差别,但它认为6和6在成角度时是不同的图像

我认为特征匹配是更好的方法,但在这个例子中,我只能在输出图像上绘制相似性,我不需要这个,我想要得到分数或比率:数字越大,就有合适的模板

抱歉,解释不好

我试着添加一张图片,但是做不到(缩进是错误的,不知道为什么)

img1 = cv2.imread('large.png',0)
img2 = cv2.imread('20.png',0)
orb = cv2.ORB_create()
kp1, des1 = orb.detectAndCompute(img1,None)
kp2, des2 = orb.detectAndCompute(img2,None)
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches = bf.match(des1,des2)
matches = sorted(matches, key = lambda x:x.distance)
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10],None, flags=2)
cv2.imshow('s',img3)
cv2.waitKey(0)

Tags: 图像none模板png图片数字cv2例子