Я использую opencv для python. Для плохой формы мы используем approxpolyDP(). Для этого я создал плохой прямоугольник (добавлен в сообщение)Ориентация контура OpenCV
При использовании этого я получаю только 2 точки, а не правильный прямоугольник.
Может ли кто-нибудь помочь мне, почему это происходит?
import cv2
import numpy as np
im = cv2.imread("badrect.png")
img = im
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(img,100,200)
(_,cnts,_) = cv2.findContours(canny,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = cnts[0]
epsilon = 0.1*cv2.arcLength(cnt,True)
approx = cv2.approxPolyDP(cnt,epsilon,True)
cv2.drawContours(im,approx,-1,(0,255,0),3)
cv2.imshow("img",im)
cv2.waitKey(0)
cv2.destroyAllWindows()
Вот как выглядит результат. Bad rectangle Это как я хочу, чтобы это было как desired output
Заранее спасибо! :)
_ УНТ = cv2.findContours (edge.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) ValueError: слишком много значений для распаковки (ожидается 2) Как решить это !!! – venkat