虹膜區域使用的OpenCV識別虹膜區域+瞳孔區(外側灰色區域+內黑圓點)在this image無法識別在人眼的圖像
嘗試以下方法觀察,但不能提取的虹膜區域100%。使用的像素的色碼檢測圖像
import cv2
from PIL import Image
#import cv2.cv as cv
img = cv2.imread('i1.jpg')
im = Image.open('i1.jpg')
pix = im.load()
#cv2.imshow('detected Edge',img)
height, width = img.shape[:2]
print height,width
height=height-1
width=width-1
count=0
print pix[width,height]
print pix[0,0]
for eh in range(height):
for ew in range(width):
r,g,b=pix[ew,eh]
if r<=30 and g<=30 and b<=30:
print eh,ew
cv2.circle(img,(ew,eh),1,(0,255,0),1)
print height,width
cv2.imshow('detected Edge',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
上述代碼的Click here to view output在
方法1 虹膜區域檢測。使用霍夫圈子方法
import cv2
#import cv2.cv as cv
img1 = cv2.imread('i.jpg')
img = cv2.imread('i.jpg',0)
ret, thresh = cv2.threshold(img, 50, 255, cv2.THRESH_BINARY)
edges = cv2.Canny(thresh, 100, 200)
#cv2.imshow('detected ',edges)
cimg=cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT, 1, 10000, param1 = 50, param2 = 30, minRadius = 0, maxRadius = 0)
#circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,
# param1=50,param2=30,minRadius=0,maxRadius=0)
print circles
for i in circles[0,:]:
i[2]=i[2]+4
cv2.circle(img1,(i[0],i[1]),i[2],(0,255,0),1)
#Code to close Window
cv2.imshow('detected Edge',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
for i in range (1,5):
cv2.waitKey(1)
代碼Click here to view the output
方法2 虹膜區域檢測。
請引導我們如何自動提取人眼圖片中的圓形黑色區域。
不是角膜。那是學生......這些東西沒有在學校教過嗎? :(以及hough輸出圖像有什麼問題?如果這個結果不夠好,什麼是好的,你想達到什麼目的? – Piglet
準確地說,我們要確定虹膜區域(外圓灰色區域)和瞳孔區域(內部的黑色圓圈),如圖所示http://www.elecfans.com電子發燒友http://bbs.elecfans.com電子技術論壇Page 3 Hough輸出圖像不一致在某些眼睛圖像不精確識別虹膜區域 – Vikram
當你沒有設置hough變換的最小和最大半徑時,你不能指望好的結果... – Piglet