OpenCV 4.11.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:829
bool empty() const
如果数组没有元素,则返回true。
int rows
行和列的数量,当矩阵的维度超过2时为(-1, -1)
定义 mat.hpp:2155
int main(int argc, char *argv[])
定义 highgui_qt.cpp:3
定义 core.hpp:107
STL 命名空间。