Windows에서 Python 2.7과 함께 OpenCV 3을 사용하고 있습니다.
작업중인 코드는 다음과 같습니다.
import numpy as np
import cv2
from matplotlib import pyplot as plt
img1 = cv2.imread('feature.jpg',0)
img2 = cv2.imread('large-pic.jpg',0)
orb = cv2.ORB_create()
# cv2.ORB() doesn't work as mentioned in the documentation
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 = np.zeros((1,1))
img4 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10],img3,flags=2)
plt.imshow(img4)
ORB 설명자를 사용하여 Brute Force 기능 일치를 구현하는 동안 plt.imshow (img4) 후에 다음 오류가 발생합니다 .
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
plt.imshow(img4)
File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 2368, in imshow
ret = ax.imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 6734, in imshow
im.set_data(X)
File "C:\Python27\lib\site-packages\matplotlib\image.py", line 412, in set_data
raise TypeError("Image data can not convert to float")
TypeError: Image data can not convert to float
이유가 무엇일까요?
이에 따라 다음 을 수행해야합니다.
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2)
plt.imshow(img3),plt.show()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다