2011-06-10 251 views
1

我想在visual c#中使用cvHoughCircles方法檢測對象。如果有人知道如何做到這一點,請幫助我。使用emgu cv進行對象檢測CvInvoke.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); 

在下面的鏈接有code.But它在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」一個公共定義。

是否有任何方法可以避免此錯誤。

+0

也許你應該閱讀關於這個問題的一些文章。自己嘗試一下。測試幾個代碼示例。然後當你發現更多更具體的問題時再回來。 =) – 2011-06-10 13:02:09

回答