1

我在java中使用opencv來檢測眼圖中的圓(虹膜和瞳孔)。但我沒有得到應有的結果。關於在java中使用hough圈檢測虹膜和瞳孔圈opencv

這裏是我的代碼

` // convert source image to gray 
    org.opencv.imgproc.Imgproc.cvtColor(mRgba, imgCny, Imgproc.COLOR_BGR2GRAY); 
    //fliter 
    org.opencv.imgproc.Imgproc.blur(imgCny,imgCny,new Size(3,3)); 
//apply canny 
    org.opencv.imgproc.Imgproc.Canny(imgCny, imgCny, 10, 30); 
//apply Hough circle 
    Mat circles = new Mat(); 
     Point pt; 
     org.opencv.imgproc.Imgproc.HoughCircles(imgCny,circles,    Imgproc.CV_HOUGH_GRADIENT,imgCny.rows()/4,2,200,100,0,0); 
        //draw the found circles 
       for (int i=0; i < circles.cols();i++){ 
       double vCircle[] = circles.get(0,i); 
        pt = new Point((int) Math.round((vCircle[0])),(int)   `enter code here`Math.round((vCircle[1]))); 
        int radius = (int) Math.round(vCircle[2]); 
        Core.circle(mRgba, pt, radius, new Scalar(0,0,255),3); 

`

the original image

canny result

我不知道是什麼,如果問題是出在霍夫圈子功能或其他東西的參數

是有沒有人遇到這樣的問題或知道如何解決它?

+0

請分享中間結果(坎尼)和原始圖像。 – FiReTiTi

+0

@FiReTiTi,我編輯了上面的問題,並添加了原始圖像和canny結果,實際上我刪除了hough circle的結果,因爲我在這裏有限制。添加鏈接或照片(不超過兩個鏈接) – Reema

+0

我有同樣的問題與ough圈定位瞳孔,結果證明,ough circle不適合這種情況,因爲瞳孔不是精確的圓圈。 –

回答

0

霍夫變換無法檢測到你想要的圓圈在這個可靠的結果!邊緣太多。您必須先清潔圖像。

從黑色(瞳孔,虹膜內部)和白色檢測開始。這兩個區域將劃定ROI。

此外,我也想嘗試執行皮膚檢測(簡單的閾值到HSV色彩空間,這將消除90%的研究領域。