C++ 霍夫变换圆形检测

霍夫变换圆形检测

  • 一、检测原理
  • 二、实现步骤
  • 三、算法实现

一、检测原理

HoughCircles 参数说明:

HoughCircles(
  InputArray image,  // 输入图像 ,必须是 8 位的单通道灰度图像
  OutputArray circles,  // 输出结果,发现的圆信息
  Int method,  // 方法 - HOUGH_GRADIENT
  Double dp,  // dp = 1; //用来检测圆心的累加器图像的分辨率与输入图像之比的倒数
  Double mindist,  // 10 最短距离-可以分辨是两个圆的,否则认为是同心圆- src_gray.rows/8
  Double param1,  // canny edge detection low threshold
  Double param2,  // 中心点累加器阈值 – 候选圆心(有多少个圆心重叠)
  Int minradius,   // 最小半径
  Int maxradius  //最大半径
  )

二、实现步骤

  • 1.因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波
  • 2.基于效率考虑,Opencv 中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步: 1. 检测边缘,发现

你可能感兴趣的:(C++开发,c++,圆检测)