Python 为什么我的代码总是告诉NotImplementedError?
我试着读两张图片,但它告诉我没有实现错误。我正在使用Python上的OpenCV在solution()函数us中缝合两个图像代码,但在HW代码中仍然没有实现错误 这是我的全部代码Python 为什么我的代码总是告诉NotImplementedError?,python,numpy,Python,Numpy,我试着读两张图片,但它告诉我没有实现错误。我正在使用Python上的OpenCV在solution()函数us中缝合两个图像代码,但在HW代码中仍然没有实现错误 这是我的全部代码 import cv2 import numpy as np import random def solution(left_img, right_img): # left_img = cv2.imread('left.jpg') # right_img = cv2.imread('right.jp
import cv2
import numpy as np
import random
def solution(left_img, right_img):
# left_img = cv2.imread('left.jpg')
# right_img = cv2.imread('right.jpg')
global homography
left_image1 = cv2.cvtColor(left_img, cv2.COLOR_BGR2GRAY)
right_image1 = cv2.cvtColor(right_img, cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
# find key points
keypoints_1, descriptors_1 = sift.detectAndCompute(right_image1, None)
keypoints_2, descriptors_2 = sift.detectAndCompute(left_image1, None)
FLANN_INDEX_KDTREE = 0
index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
search_params = dict(checks=50)
match = cv2.FlannBasedMatcher(index_params, search_params)
# match = cv2.BFMatcher()
matches = match.knnMatch(descriptors_1, descriptors_2, k=2)
good = []
for m, n in matches:
if m.distance < 0.03 * n.distance:
good.append(m)
draw_params = dict(matchColor=(0, 255, 0), singlePointColor=None, flags=2)
img3 = cv2.drawMatches(right_img, keypoints_1, left_img, keypoints_2, good, None, **draw_params)
MIN_MATCH_COUNT = 10
if len(good) > MIN_MATCH_COUNT:
src_pts = np.float32([keypoints_1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
dst_pts = np.float32([keypoints_2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)
homography, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, 5.0)
h, w = right_image1.shape
pts = np.float32([[0, 0], [0, h - 1], [w - 1, h - 1], [w - 1, 0]]).reshape(-1, 1, 2)
dst = cv2.perspectiveTransform(pts, homography)
img2 = cv2.polylines(left_image1, [np.int32(dst)], True, 255, 3, cv2.LINE_AA)
dst = cv2.warpPerspective(right_img, homography, (left_img.shape[1] + right_img.shape[1], left_img.shape[0]))
dst[0:left_img.shape[0], 0:left_img.shape[1]] = left_img
# final_result = cv2.imshow("task1 result.jpg", dst)
# return final
raise NotImplementedError
if __name__ == "__main__":
left_img = cv2.imread('left.jpg')
right_img = cv2.imread('right.jpg')
result_image = solution(left_img, right_img)
cv2.imwrite('results/task1_result.jpg', result_image)
导入cv2
将numpy作为np导入
随机输入
def溶液(左、右):
#left_img=cv2.imread('left.jpg')
#right\u img=cv2.imread('right.jpg')
全局单应
左图像1=cv2.CVT颜色(左图像,cv2.COLOR\U BGR2GRAY)
右侧图像1=cv2.CVT颜色(右侧图像,cv2.COLOR\U BGR2GRAY)
sift=cv2.xfeature2d.sift_create()
#找到关键点
关键点_1,描述符_1=筛选、检测和计算(右_图像1,无)
关键点_2,描述符_2=筛选、检测和计算(左_图像1,无)
法兰索引KDTREE=0
索引参数=dict(算法=FLANN\u索引树,树=5)
搜索参数=dict(检查=50)
match=cv2.FlannBasedMatcher(索引参数、搜索参数)
#match=cv2.BFMatcher()
matches=match.knnMatch(描述符_1,描述符_2,k=2)
好的=[]
对于匹配中的m,n:
如果m.距离<0.03*n.距离:
好。追加(m)
draw_params=dict(matchColor=(0,255,0),singlePointColor=None,flags=2)
img3=cv2.绘图匹配(右图、关键点图1、左图、关键点图2、良好、无,**绘图参数)
最小匹配计数=10
如果长度(良好)>最小匹配计数:
src_pts=np.float32([keypoints_1[m.queryIdx].pt表示m处于良好状态])。重塑(-1,1,2)
dst_pts=np.float32([keypoints_2[m.trainIdx].pt代表m处于良好状态])。重塑(-1,1,2)
单应性,mask=cv2.find单应性(src_pts,dst_pts,cv2.RANSAC,5.0)
h、 w=右_图像1.形状
pts=np.float32([[0,0],[0,h-1],[w-1,h-1],[w-1,0]])。重塑(-1,1,2)
dst=cv2.透视变换(pts,单应)
img2=cv2.多段线(左_图像1,[np.int32(dst)],真,255,3,cv2.线_AA)
dst=cv2.透视图(右对齐,单应,(左对齐形状[1]+右对齐形状[1],左对齐形状[0]))
dst[0:左img.形状[0],0:左img.形状[1]=左img
#最终结果=cv2.imshow(“task1 result.jpg”,dst)
#返回决赛
引发未实现的错误
如果名称=“\uuuuu main\uuuuuuuu”:
left_img=cv2.imread('left.jpg')
right\u img=cv2.imread('right.jpg')
结果图像=解决方案(左图像、右图像)
cv2.imwrite('results/task1_result.jpg',result_image)
并且输出总是NotImplementedError
,并且O不知道该问题
有人能支持我修复这个错误吗?
非常感谢,因为您在
解决方案
函数末尾提出了未实现错误
。删除该行,并可能将其替换为返回最终结果
,因为您总是在函数中引发NotImplementedError