1

ビジュアルC#でメソッドを使用してオブジェクトを検出したいcvHoughCircles.誰かがこれを行う方法を知っているなら、私を助けてください.

詳細を編集する:

gray.HoughCirclesメソッドを使用した例がインターネットで検索されました。
これは私のコードです。

 Image<Bgr, Byte> image = capture.QueryFrame();
 MCvScalar hsv_min = new MCvScalar(150, 84, 130, 0);
 MCvScalar hsv_max = new MCvScalar(358, 256, 255, 0);
 IntPtr hsv_frame = CvInvoke.cvCreateImage(new System.Drawing.Size(640,         480),IPL_DEPTH.IPL_DEPTH_8U, 3);
 IntPtr thresholded = CvInvoke.cvCreateImage(new System.Drawing.Size(640, 480), IPL_DEPTH.IPL_DEPTH_8U, 1);


 CvInvoke.cvCvtColor(image, hsv_frame, COLOR_CONVERSION.CV_BGR2HSV);
 CvInvoke.cvInRangeS(hsv_frame, hsv_min, hsv_max, thresholded);

 IntPtr storage = CvInvoke.cvCreateMemStorage(0);
  CvInvoke.cvSmooth(thresholded, thresholded, SMOOTH_TYPE.CV_GAUSSIAN, 9, 9, 0, 0);

IntPtr circles= CvInvoke.cvHoughCircles(thresholded,   storage,HOUGH_TYPE.CV_HOUGH_GRADIENT , 2, 4, 100, 50, 10, 400);   

次のリンクにはコードがあります。しかし、それは pythen にあります。私がやっていることは、それを視覚的な c# に変換しようとしていることです。

http://www.lirtex.com/robotics/fast-object-tracking-robot-computer-vision/#comment-847

検出されたすべての円を for ループに取り込み、pythen コードのように対応するオブジェクトに円を描画します。

foreach ループを使用しようとしましたが、エラーが発生し、

'System.IntPtr' には 'GetEnumerator' のパブリック定義が含まれていないため、foreach ステートメントは 'System.IntPtr' 型の変数を操作できません。

このエラーを回避する方法はありますか。

4

1 に答える 1

1

このチュートリアルを試しましたか?
CSharp での形状 (三角形、長方形、円、線) 検出

これには役立つチュートリアルが含まれています。

于 2011-06-10T14:36:28.313 に答える