OpenCV  4.10.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(" 程序参数: [图像名称 - 默认值 %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("检测到的圆圈", src);
waitKey();
return EXIT_SUCCESS;
}
n 维密集数组类
定义 mat.hpp:812
bool empty() const
如果数组没有元素,则返回 true。
int rows
行和列的数量,当矩阵的维数超过 2 时为 (-1, -1)
定义 mat.hpp:2138
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3
与磁盘上的文件关联的文件存储的“黑盒子”表示。
定义 core.hpp:102
STL 命名空间。