3

円検出を使用して瞳孔を検出しようとしています。Mat 画像全体 (mGray) を HoughCircles 関数にフィードすると、多くの円が検出されますが、Mat 画像を顔 ROI または目の領域 ROI に縮小すると、円は検出されません。

これが私のコードです:

    faceROI = mGray.submat(facesArray[i]);

    Imgproc.GaussianBlur(faceROI,faceROI, new Size(9,9),2,2);
    Mat circles = new Mat();
    Imgproc.HoughCircles(faceROI,circles,Imgproc.CV_HOUGH_GRADIENT,2,150,200,100,0,0);

    for (int x = 0; x<circles.cols(); x++) {
    double Circle[] = circles.get(0, x);
        Point center = new Point(Math.round(Circle[0]), Math.round(Circle[1]));
    int radius = (int)Math.round(Circle[2]);
    Core.circle(mRgba, center,2, new Scalar(0,0,255),4);
        Core.circle(mRgba,center,radius,new Scalar(0,0,0),4);       
    }

パラメータは正しく設定されていますか? 私が正しく理解していないことがありますか?

ありがとうございました!

4

1 に答える 1

0

シフトを適用しても解決しない場合は、mRgba 画像で円を描画するときに、検出された中心 (ROI 座標で検出される) をシフトしていないと思われます。ハフ検出器のしきい値を下げてみてください。

于 2013-08-01T13:08:57.980 に答える