2017-07-21 10 views
0

OCRのためのSIFT特徴抽出を使用しています。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) 

エラーは、引数のためのcv :: DMatch期待

私はその後、drawMatches()に渡されgood[]で試合を持っています '1to2と一致する' です。

plt.imshow(img3) 
plt.show() 
+0

質問をより適切にフォーマットしようとしましたが、「何か良いものを持っている」とは考えられません。 –

答えて

0

使用IMG3 = cv2.drawMatchesKnn(IMG1、kps1、IMG2、kps2、良い、なし、フラグ= 2)の代わりに、それが動作するはずです。

関連する問題