在python(和opencv)中检测(精确)瞳孔直径

2024-06-03 13:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

也许有人能帮我。我在试着在一张照片里得到(或多或少)精确的瞳孔直径。在

这是我的代码:

import cv2
import cv2.cv as cv

img = cv2.imread('pupil_still_1.png',0)
ret, thresh = cv2.threshold(img, 50, 255, cv2.THRESH_BINARY)
edges = cv2.Canny(thresh, 100, 200)

cimg=cv2.cvtColor(edges, cv2.COLOR_GRAY2BGR)

circles = cv2.HoughCircles(edges, cv.CV_HOUGH_GRADIENT, 1, 10000, param1 = 50, param2 = 30, minRadius = 0, maxRadius = 0)

for i in circles[0,:]:
    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)

#Code to close Window
cv2.imshow('detected Edge',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
for i in range (1,5):
    cv2.waitKey(1)

这不是一个非常复杂的代码,而且运行得很好。在

对不起。我想发两张照片,但我的声誉不够。因此,我将试图解释发生了什么。在

如你所见,在我试着检测一个圆之前,我正在做一些图像处理。我能发现一只蝉,它也是瞳孔,但不知怎么它不太合适。检测到的圆要小得多。 HoughCircles似乎检测到瞳孔内smaler圆的一部分。在

我不知道我能做什么。有什么建议我可以试试吗?在

编辑: 图片到原始图片 https://oc.fk06.hm.edu/index.php/s/9Y6FExTQVFl04U4 (不是最好的质量,但这是挑战;o)

利用HougheCircle检测将图像转换成图像 https://oc.fk06.hm.edu/index.php/s/tJk2WiSVPrMSLix


Tags: 代码inimportimgforcv2cv照片