Обнаружение объектов с помощью emgu cv CvInvoke.cvHoughCircles - PullRequest
1 голос
/ 10 июня 2011

Я хочу обнаруживать объекты, используя метод cvHoughCircles в Visual C #. Если кто-нибудь знает, как это сделать, пожалуйста, помогите мне.

Изменить сведения:

Iискал в инете есть примеры использования 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.So, что я делаюпытается преобразовать его в визуальный c #.

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

Я хочу взять все обнаруженные круги в цикл for, а затем нарисовать окружность для соответствующих объектов, как в коде pythen.

Я пытался использовать цикл foreach, но есть ошибка,

оператор foreach не может работать с переменными типа 'System.IntPtr', поскольку 'System.IntPtr' не содержит публичного определения для 'GetEnumerator '.

Есть ли способ избежать этой ошибки.

1 Ответ

1 голос
/ 10 июня 2011

Вы пробовали этот урок?
Определение формы (треугольник, прямоугольник, круг, линия) в CSharp

Содержит хороший учебник, который может вам помочь.

...