0
我已經編寫了以下程序來實時檢測圓。但它不起作用。 編譯器不顯示任何錯誤,但問題是程序甚至沒有檢測到一個圓。我該如何解決它? 這裏是我的代碼 using namespace cv;使用OpenCV進行實時圓檢測
int main()
{
VideoCapture cap(0);
namedWindow("main",CV_WINDOW_AUTOSIZE);
namedWindow("blur",CV_WINDOW_AUTOSIZE);
Mat img;
Mat img2;
int c;
float radius;
while(1)
{
cap>>img;
imshow("main",img);
cvtColor(img,img2,CV_BGR2GRAY);
GaussianBlur(img2,img2,Size(9,9),2,2);
imshow("blur",img2);
vector <Vec3f> circles;
HoughCircles(img2,circles,CV_HOUGH_GRADIENT,1,img2.rows/8,200,100,0,0);
for(size_t i=0;i<circles.size();i++)
{
Point center(cvRound(circles[i][0]),cvRound(circles[i][1]));
radius = cvRound(circles[i][2]);
circle(img,center,3,Scalar(0,255,0),-1,8,0);
circle(img,center,radius,Scalar(0,0,255),3,8,0);
}
c = waitKey(33);
if(c==27)
break;
}
destroyAllWindows();
return 0;
}
我嘗試了你所說的,但它仍然不適用於實時圓檢測。但是,當我試圖通過加載圖像而不是使用視頻捕捉它的工作。我怎樣才能使它工作的實時圈檢測 – BBB
@Behroz檢查出更新的答案。 – herohuyongtao