我找到了用于瞳孔检测的用Python和OpenCV进行瞳孔检测代码,它解释了如何检测眼睛瞳孔,但只解释了一只眼睛。我想探测两只眼睛。请告诉我如何从密码中检测出双眼瞳孔。
谢谢
发布于 2017-01-05 13:14:32
简单地看一下这段代码,它看起来就像找到了两只眼睛,然后只给出了一只眼睛。只需根据需要修改代码,就可以提取找到的两个小块,而不仅仅是一个。第55-72行是将候选池从一些小块(可能的瞳孔)减少到1的地方。
所有这些行:“如果连(等高线) >= n”基本上是说,如果你还有多个水滴,试着剪掉一个。问题是,你想要的是最大的两个,而不是那个。因此,您需要重写那些check语句,这样就可以消除除两个最大的气泡之外的所有所有的情况,然后在它们的每个质心上画圆圈。据我所知,其他任何东西都不需要修改。
下面是一些可能有用的示例代码(未经测试)。我不知道python语法,只是修改了链接文件中的一些内容
while len(contours) > 2:
#find smallest blob and delete it
minArea = 1000000 #this should be the dimensions of your image to be safe
MAindex = 0 #to get the unwanted frame
currentIndex = 0
for cnt in contours:
area = cv2.contourArea(cnt)
if area < minArea:
minArea = area
MAindex = currentIndex
currentIndex = currentIndex + 1
del contours[MAindex] #remove the picture frame contour
del distanceX[MAindex]这将把你带到你的两个眼珠,然后你将仍然需要添加一个圆圈为每个球的中心。(你需要删除所有的“如果连.”语句,并将它们替换为with语句)
https://stackoverflow.com/questions/41468303
复制相似问题