У меня есть изображение в оттенках серого, и я попробовал некоторые методы, такие как findContour и HoughLinesP, чтобы обнаружить полосу на прикрепленном изображении. Выходные данные не отражают ожидаемое обнаружение. Ниже приведен один из моих примеров кода с использованием findContour. Однако скрипт обнаруживает другие регионы за пределами области полос.
Как правильно определить полосу (контур/рамку)?
импортировать cv2 импортировать imutils img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE) img = cv2.GaussianBlur(img, (5, 5), 0) ret,thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) cnts = cv2.findContours(image=thresh, mode=cv2.RETR_EXTERNAL, метод = cv2.CHAIN_APPROX_SIMPLE) cnts = imutils.grab_contours(cnts) c = max(cnts, key=cv2.contourArea) img_col = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) image_copy = img_col.copy() cv2.drawContours(image=image_copy, контуры=[c], contextIdx=-1, цвет = (0, 255, 0), толщина = 1, тип линии = cv2.LINE_AA) # посмотреть результаты cv2.imshow('Вывод', image_copy) cv2.waitKey(0)

