#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))