• Как исправить ошибку при аппроксимации контуров OpenCV?

    BitNeBolt
    @BitNeBolt Автор вопроса
    В отрывке я не показал, что происходит фильтр на определенный цвет и изображение становится бинарным, поэтому конвертация в серый здесь бесполезна.
    #Полный код
    img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    
    mask = cv2.inRange(img, cl1, cl2)
    
    canny = cv2.Canny(mask, 100, 10)
    
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
    closed = cv2.morphologyEx(canny, cv2.MORPH_CLOSE, kernel)
    
    cnts = cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    
    for c in cnts:
        peri = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * peri, True)
    
    cv2.imshow("clsd", closed)
    cv2.imshow("approx", approx)