Ошибка типа Python3: функция handle_get_file_code() получила неожиданный аргумент ключевого слова ‘save_all’

#python #python-3.x #numpy #typeerror #cv2

#python #python-3.x #numpy #ошибка типа #cv2

Вопрос:

в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder 4.1.3 в Spyder добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.добавить еще некоторые детали.

ошибка:

     runfile('D:/projects/task3/a.py', wdir='D:/projects/task3')
    This command failed to be executed because an error occurred while trying to get the file code from Spyder's editor. The error was:
    
    
    An exception has occurred, use %tb to see the full traceback.
    
    TypeError: handle_get_file_code() got an unexpected keyword argument 'save_all'
    
    
    %tb
    Traceback (most recent call last):
    
      File "C:Userszzhanaconda3libsite-packagesspyder_kernelscustomizespydercustomize.py", line 463, in get_file_code
        filename, save_all=save_all)
    
      File "C:Userszzhanaconda3libsite-packagesspyder_kernelscommscommbase.py", line 550, in __call__
        call_dict, call_data, self._comm_id)
    
      File "C:Userszzhanaconda3libsite-packagesspyder_kernelscommscommbase.py", line 432, in _get_call_return_value
        return self._sync_error(reply['value'])
    
      File "C:Userszzhanaconda3libsite-packagesspyder_kernelscommscommbase.py", line 488, in _sync_error
        error_wrapper.raise_error()
    
      File "C:Userszzhanaconda3libsite-packagesspyder_kernelscommscommbase.py", line 90, in raise_error
        raise self.etype(self)
    
    TypeError: handle_get_file_code() got an unexpected keyword argument 'save_all'
  

Я хочу получить края изображения, вот мой исходный код:

     import cv2
    
    import numpy as np
    
    from PIL import Image
    
    img = Image.open("./test.png")
    img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    img_gauss_blur = cv2.GaussianBlur(img_gray,(5,5),0)
    img_canny = cv2.Canny(img_gray,34,158)
    
    
    contours,h = cv2.findContours(img_canny,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
    
    
    length = []
    for i,contour in enumerate(contours):
        length.append(cv2.arcLength(contour,True))
    index = np.argmax(length)
    
    
    def s(con):
        return cv2.arcLength(con,True)
    cnts = sorted(contours,key = s,reverse=True)[:1]
    
    
    long = cv2.arcLength(cnts[0],True)
    approx = cv2.approxPolyDP(cnts[0],0.1*long,True)
    
    res = cv2.drawContours(img.copy(),[approx],-1,(0,0,255),2)
    
    tr = approx[0][0]
    br = approx[1][0]
    bl = approx[2][0]
    tl = approx[3][0]
    
    widthr = int(np.sqrt((br[0]-tr[0])**2 (br[1]-tr[1])**2))
    widthl = int(np.sqrt((bl[0]-tl[0])**2 (bl[1]-tl[1])**2))
    width = np.max((widthr,widthl))
    
    heightb = int(np.sqrt((br[0]-bl[0])**2 (br[1]-bl[1])**2))
    heightt = int(np.sqrt((tr[0]-tl[0])**2 (tr[1]-tl[1])**2))
    height = np.max((heightb,heightt))
    
    old_point = np.array([tl.tolist(),tr.tolist(),br.tolist(),bl.tolist()],np.float32)
    new_point = np.array([[0,height-1],[0,0],[width-1,0],[width-1,height-1]],np.float32)
    
    M = cv2.getPerspectiveTransform(old_point,new_point)
  

new_image = cv2.warpPerspective(img,M,(ширина-1, высота-1))