README 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 高斯模糊去噪:G(x,y) = (1/(2πσ²)) * e^(-(x²+y²)/(2σ²))
  2. 选择高斯核大小:通常使用奇数尺寸的核(如3*3, 5*5等)
  3. 计算高斯权重:根据σ值计算核中每个位置的权重
  4. 归一化权重:使所有权重之和为1
  5. 卷积运算:将高斯核与图像进行卷积
  6. 对于轻度噪声:σ=0.5-1.5,核大小3*3或5*5
  7. 对于较强噪声:σ=1.5-3.0,核大小5*5或7*7
  8. Canny边缘检测:一种经典的图像边缘提取算法
  9. 使用Sobel算子计算图像的梯度:
  10. 水平梯度Gx = Sobel_x * 图像
  11. 垂直梯度Gy = Sobel_y * 图像
  12. 梯度幅度:G = √(Gx² + Gy²)
  13. 梯度方向:θ = arctan(Gy/Gx),量化到0°、45°、90°、135°四个方向
  14. 双阈值检测
  15. 设定高阈值(Thigh)和低阈值(Tlow),通常Tlow ≈ 0.4*Thigh
  16. 梯度值 > Thigh:强边缘像素
  17. Tlow < 梯度值 ≤ Thigh:弱边缘像素
  18. 梯度值 ≤ Tlow:抑制
  19. cv::findContours函数:OpenCV 中用于从二值图像中提取轮廓的函数,通常与边缘检测(如 Canny)或阈值处理的结果配合使用
  20. 输入参数:Canny函数的输出,mode 轮廓检索模式,method:轮廓近似方法
  21. mode:轮廓检索模式
  22. cv::RETR_EXTERNAL:只检测最外层轮廓
  23. cv::RETR_LIST:检测所有轮廓,不建立层级关系
  24. cv::RETR_CCOMP:检测所有轮廓,组织为两级层次结构
  25. cv::RETR_TREE:检测所有轮廓,建立完整的层级树
  26. method:轮廓近似方法
  27. cv::CHAIN_APPROX_NONE:存储所有轮廓点
  28. cv::CHAIN_APPROX_SIMPLE:压缩水平、垂直和对角线段,只保留端点
  29. cv::CHAIN_APPROX_TC89_L1 或 cv::CHAIN_APPROX_TC89_KCOS:使用 Teh-Chin 链逼近算法
  30. 输出参数:contours:检测到的轮廓,每个轮廓存储为点向量