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

用python(和opencv)检测(精确)瞳孔直径,python,opencv,detection,Python,Opencv,Detection,也许有人能帮我。我试图在一张图片中得到(或多或少)准确的瞳孔直径 这是我的代码: 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_GRAY

也许有人能帮我。我试图在一张图片中得到(或多或少)准确的瞳孔直径

这是我的代码:

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圆的一部分

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

编辑: 图片到原始图片 (不是最好的质量,但这是挑战;o)

通过HougheCircle检测将图像转换为变换后的图像

1)至少发布一个图像链接,以便我们可以看到它们。2) 尝试在“thresh”而不是“edges”上运行houghCircles。houghCircles不需要灰色图像吗?为什么要皈依BGR?@stark别问我。我刚刚学习了本教程,我想我在Stackoverflow的其他示例中也看到了这种转换。@Miki当我尝试“thresh”时,我得到一个错误,它不是正确的格式。很抱歉,目前我没有在正确的计算机上发布正确的错误消息。如果必要的话,我可以明天再做。1)至少发布一个图片链接,这样我们就能看到它们。2) 尝试在“thresh”而不是“edges”上运行houghCircles。houghCircles不需要灰色图像吗?为什么要皈依BGR?@stark别问我。我刚刚学习了本教程,我想我在Stackoverflow的其他示例中也看到了这种转换。@Miki当我尝试“thresh”时,我得到一个错误,它不是正确的格式。很抱歉,目前我没有在正确的计算机上发布正确的错误消息。如果必要的话,我明天可以试着做这件事。