如何解决影像透视变换未成功发生
我不确定,但是我的透视图转换不起作用。粗线不会显示在图像中。虽然我的cv2.drawMatches正在显示。这是示例代码:
bfm = cv2.BFMatcher(normType=cv2.NORM_HAMMING,crossCheck=True)
matches = bfm.match(image_1_desc,image_2_desc)
matches = sorted(matches,key = lambda x:x.distance)
image_1_points = np.zeros((len(matches),1,2),dtype=np.float32)
image_2_points = np.zeros((len(matches),dtype=np.float32)
list_kp1 = []
list_kp2 = []
for mat in matches:
img1_idx = mat.queryIdx
img2_idx = mat.trainIdx
(x1,y1) = image_1_kp[img1_idx].pt
(x2,y2) = image_2_kp[img2_idx].pt
list_kp1.append((x1,y1))
list_kp2.append((x2,y2))
image_1_points=np.asarray(list_kp1,dtype=np.float32)
image_2_points=np.asarray(list_kp2,dtype=np.float32)
matrix,mask = cv2.findHomography(image_1_points,image_2_points,cv2.RANSAC,5.0)
h,w,c = image_1.shape
pts = np.float32([[0,0],[0,h],[w,0]]).reshape(-1,2)
dst = cv2.perspectiveTransform(pts,matrix)
homography = cv2.polylines(image_1,[np.int32(dst)],True,(255,0),3)
plt.imshow(homography);
plt.axis("off");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。