12

OpenCV2.4.1パッケージに含まれているTutorial2-Basicを出発点として、OpenCVforAndroidで楕円を検出したいと思います。私の楕円は完璧なフォトショップのものになることに注意してください。

私が理解していることから、「HoughCircles」を使用すると、完全な(またはそれくらいの)円しか見つからないため、楕円は除外されます。

私はOpenCVの完全な初心者なので、どんな助けでも大歓迎です

これは私がこれまでに試したことです

    case Sample2NativeCamera.VIEW_MODE_CANNY: (ignore the Canny mode...)

        capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);
        Imgproc.HoughCircles(mGray, mCircles, Imgproc.CV_HOUGH_GRADIENT, 1, 20);
        Log.d("Ellipse Points", " X " + mCircles.get(1,1)[0] + mCircles.get(1, 1)[1]);

        break;

これ以上の情報が役立つと思われる場合は、お知らせください。

4

3 に答える 3

7

問題に対する1つの可能な解決策は、このスレッドに似ています。画像上のコインの検出(および楕円のフィット)

opencvの関数fitEllipseを見てください。

于 2012-06-11T16:32:45.093 に答える
5

で使用されるパラメータHoughCirclesは基本的な役割を果たします。HoughCircles完全なだけでなく、ほぼ完全な円(楕円)も検出します。この例を確認することをお勧めします。

そして、この答えにはまともな参照のコレクションがあります。

于 2012-06-11T18:11:03.300 に答える
4

探している楕円のサイズがすでにわかっている場合は、次の手順を試してください。

  • 画像内のキャニーエッジを見つける
  • スライディングウィンドウを使用します。そのサイズは、探している楕円の主軸の最大長です。
  • ウィンドウ内で、すべてのエッジピクセルを収集し、6ピクセルをランダムに選択し、線形最小二乗法を使用して、一般的な形式の楕円に合わせます。
  • RANSACのような手順で上記の手順を繰り返します。
  • 十分なインライアがある場合は、楕円があります。
于 2013-03-16T20:15:03.350 に答える