Есть ли способ улучшить обнаружение контура области зрачка по изображению декартовой радужной оболочки? - PullRequest
1 голос
/ 22 апреля 2019

Итак, у меня есть эти изображения радужной оболочки, которые я превратил в декартовы изображения, включая область зрачка. Теперь проблема в том, что мне нужно удалить область зрачка с изображения. (площадь / размер зрачка различны для каждого изображения)

Я пытался замаскировать область зрачка, установив порог и найдя контур зрачка. Но результаты не очень хорошие, потому что некоторые изображения имеют отражение света, а некоторые имеют аналогичное пороговое значение с площадью радужной оболочки.

# convert to binary image
ret, thresh = cv.threshold(image, 35, 255, cv.THRESH_BINARY)

# dilate image to reduce hole in pupil area
kern = np.ones((5,5), np.uint8)
dilated = cv.dilate(thresh, kern, iterations =1)

# detect contour of pupil area by looking for the biggest contour found
contours,_= cv.findContours(dilated, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
maxContour = 0
for contour in contours:
    contourSize = cv.contourArea(contour)
    if contourSize > maxContour:
        maxContour = contourSize
        maxContourData = contour

# create mask & mask pupil contour area
mask = np.zeros_like(image)
cv.fillPoly(mask, [maxContourData], 1)
masked_pupil = np.multiply(image, mask)

Я ожидаю, что только область зрачка замаскирована, но на некоторых изображениях я на самом деле получил область зрачка, частично замаскированную и связанную с областью радужной оболочки.

Вот результат изображения: https://postimg.cc/FfGNWfbK https://postimg.cc/fVcwdqJm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...