有什么方法可以改善笛卡尔虹膜图像对瞳孔区域的轮廓检测吗?

时间:2019-04-22 13:10:20

标签: python-3.x opencv

所以,我有这个虹膜图像,我把它变成了笛卡尔图像,包括瞳孔区域。现在的问题是我需要从图像中删除瞳孔区域。 (每张图像的瞳孔面积/大小不同)

我试图通过做一个阈值并找到瞳孔的轮廓来掩盖瞳孔区域。但是结果并不理想,因为有些图像具有光反射功能,有些图像具有与虹膜区域相似的阈值。

# 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

0 个答案:

没有答案