Python 为什么我的代码总是告诉NotImplementedError?

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

我试着读两张图片,但它告诉我没有实现错误。我正在使用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.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