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 命名空间。