0
Ich verwende SIFT-Feature-Extraktion für OCR.Verwenden der Feature-Extraktion für OCR
import cv2
import matplotlib.pyplot as plt
import numpy as np
img1=cv2.imread('/Users/amuly/Desktop/Soap/training data/d000.jpg')
img_temp=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)
img2=cv2.imread('/Users/amuly/Desktop/Soap/test/dot matrix/5.jpg')
img_scene=cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
sift=cv2.xfeatures2d.SIFT_create()
kps1, descs1 = sift.detectAndCompute(img_temp, None)
kps2, descs2 = sift.detectAndCompute(img_scene, None)
# create BFMatcher object
bf = cv2.BFMatcher()
# Match descriptors.
matches = bf.knnMatch(descs1,descs2,k=2)
print matches
#Apply Ratio test
good = []
for m,n in matches:
if m.distance < 0.75*n.distance:
good.append([m])
print good
# Draw matches which is giving me an error
img3 = cv2.drawMatches(img1,kps1,img2,kps2,good,None,flags=2)
Fehler ist
Erwartete cv :: DMatch für Argument 'passt 1to2'
Ich habe Spiele in good[]
, die dann in drawMatches()
geben wird.
plt.imshow(img3)
plt.show()
Ich habe versucht, die Frage besser zu formatieren, aber ich habe keine Ahnung, was "Ich habe etwas in gutem" bedeutet. –