Я пытаюсь обрезать изображение сетчатки, используя хитрое обнаружение и находя счетчики, используя opencv. Я использую приведенный ниже код, но вместо этого я получаю обрезанное изображение. Я получаю изображение типа
.
В чем проблема со следующим кодом. ,
Исходное изображение выглядит следующим образом
![original_retinal_image.jpg](https://i.stack.imgur.com/gMjBe.jpg)
import cv2
# Load image, convert to grayscale, and find edges
image = cv2.imread('IDRiD_001.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(gray, 120, 255, 1)
# Find contour and sort by contour area
cnts = cv2.findContours(canny, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
cnts = sorted(cnts, key=cv2.contourArea)
# Find bounding box and extract ROI
for c in cnts:
x,y,w,h = cv2.boundingRect(c)
ROI = image[y:y+h, x:x+w]
break
cv2.imwrite('retinal_image.jpg',ROI)