Я новичок в компьютерном зрении и на самом деле не прошел ни одного урока по порогу, размытию или другим фильтрам.Я использую два приведенных ниже кода, которые определяют контуры изображения.С одной стороны, метод работает, а с другой - нет.Мне нужна помощь в понимании причины, по которой это происходит, чтобы убедить себя в том, что происходит в фоновом режиме.
Фрагмент рабочего кода:
img=cv2.imread('path.jpg')
imgBlurred = cv2.GaussianBlur(img, (5, 5), 0)
gray = cv2.cvtColor(imgBlurred, cv2.COLOR_BGR2GRAY)
sobelx = cv2.Sobel(gray, cv2.CV_8U, 1, 0, ksize=3)
cv2.imshow("Sobel",sobelx)
cv2.waitKey(0)
ret2, threshold_img = cv2.threshold(sobelx, 120, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
im2, contours, hierarchy = cv2.findContours(threshold_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
Фрагмент неработающего кода
# read image
src = cv2.imread(file_path, 1)
# show source image
cv2.imshow("Source", src)
# convert image to gray scale
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
# blur the image
blur = cv2.blur(gray, (3, 3))
# binary thresholding of the image
ret, thresh = cv2.threshold(blur, 200, 255, cv2.THRESH_BINARY)
# find contours
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
Я был бы очень признателен, если бы кто-нибудь смог выяснить причину ошибки, которая здесь происходит.
Ошибка, с которой я сталкиваюсь:
Traceback (большинствопоследний вызов последним): файл "converxhull.py", строка 27, в im2, контур, иерархия = cv2.findContours (thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) ValueError: недостаточно значений для распаковки (ожидается 3, получено 2)
Дайте мне знать, требуется ли какая-либо другая информация.