2014-10-12 181 views
0

我是iOS應用程序開發人員。我是OpenCV的新手。我想顯示檢測到的圈數。我的代碼是使用OpenCV在ios應用程序中進行圓檢測

Mat src, src_gray; 
src=[self cvMatFromUIImage:[UIImage imageNamed:@"images.jpeg"]]; 
cvtColor(src, src_gray, CV_BGR2GRAY); 
GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2); 
std::vector<Vec3f> circles; 
HoughCircles(src_gray, circles, HOUGH_GRADIENT, src_gray.rows/8, 200, 100, 0, 0); 
NSLog(@"No. of circle : %lu",circles.size()); 

但我得到的錯誤: 1「參考‘大小’是ambigouas」。 2.使用未聲明的標識符'CV_BGR2GRAY'。 請任何人指導我。我在等你的迴應。

+0

你是否用C++和Objective-C標記了你的問題,因爲你在混合語言? – 2014-10-12 12:18:53

+0

其實我從[這裏]得到了示例代碼(http://stackoverflow.com/questions/3387960/opencv-houghcircles?rq=1)。爲此,我添加標籤C++。 – 2014-10-12 12:21:38

+0

好吧,只是想確定一下。我不知道OBJ-C,所以我不能幫你 – 2014-10-12 12:24:05

回答

0

更換CV_BGR2GRAY6org.opencv.core.Size(9,9)cv::Size(9, 9)更換Size(9,9)如果你已經導入<opencv2/highgui/ios.h>。目前我無法確認哪些方法可行,請嘗試一下。

+0

我使用的#include 「opencv2/highgui/highgui.hpp」 的#include 「opencv2/imgproc/imgproc.hpp」 但得到錯誤OpenCV錯誤:在cvHoughCircles中,參數值之一超出範圍(dp,min_dist,canny_threshold和acc_threshold必須全爲正數),文件/Users/vp/work/opencv/modules/imgproc/src/hough.cpp ,行1041 libC++ abi.dylib:以cv :: Exception的未捕獲異常終止:/Users/vp/work/opencv/modules/imgproc/src/hough.cpp:1041:error:(-211)dp ,min_dist,canny_threshold和acc_threshold必須是函數cvHoughCircles中的所有正數 – 2014-10-12 14:33:53

+0

添加一個導入「#import 」並用cv :: Size(9,9)替換Size(9,9)。看看是否有效。 – user3777326 2014-10-12 14:39:04

+0

對於另一部分,其中一個參數似乎是HoughCircles()方法中的負值。嘗試NSLogging所有參數,並找出輸入否定的參數。 – user3777326 2014-10-12 14:44:16