OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
samples/cpp/tutorial_code/ImgTrans/houghcircles.cpp

使用霍夫圓檢測器的示例

using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
const char* filename = argc >=2 ? argv[1] : "smarties.png";
// 載入影像
Mat src = imread( samples::findFile( filename ), IMREAD_COLOR );
// 檢查影像是否載入成功
if(src.empty()){
printf(" 錯誤開啟影像\n");
printf(" 程式引數: [image_name -- 預設為 %s] \n", filename);
return EXIT_FAILURE;
}
Mat gray;
cvtColor(src, gray, COLOR_BGR2GRAY);
medianBlur(gray, gray, 5);
vector<Vec3f> circles;
HoughCircles(gray, circles, HOUGH_GRADIENT, 1,
gray.rows/16, // 更改此值以檢測彼此距離不同的圓
100, 30, 1, 30 // 更改最後兩個引數
// (min_radius & max_radius) 以檢測更大的圓
);
for( size_t i = 0; i < circles.size(); i++ )
{
Vec3i c = circles[i];
Point center = Point(c[0], c[1]);
// 圓心
circle( src, center, 1, Scalar(0,100,100), 3, LINE_AA);
// 圓輪廓
int radius = c[2];
circle( src, center, radius, Scalar(255,0,255), 3, LINE_AA);
}
imshow("detected circles", src);
cv::Mat::empty
return EXIT_SUCCESS;
}
n 維密集陣列類
定義 mat.hpp:830
cv::getTickFrequency
double getTickFrequency()
int rows
行數和列數,或者當矩陣具有超過 2 個維度時為 (-1, -1)
定義 mat.hpp:2165
int main(int argc, char *argv[])
定義 highgui_qt.cpp:3
定義 core.hpp:107
STL 名稱空間。