学习OpenCV 12 图像分析

本文介绍了OpenCV中的图像分析技术,包括Canny边缘检测算法,详细阐述了Canny算法的工作原理及OpenCV的实现。此外,还探讨了霍夫变换,包括霍夫线变换和霍夫圆变换,解释了它们的基本原理,并展示了如何在OpenCV中使用cv::HoughLines()和cv::HoughCircles()函数进行线和圆的检测。
摘要由CSDN通过智能技术生成

学习OpenCV 12 图像分析

Canny边缘检测The Canny Edge Detector

在Canny算法中,先在X和Y方向上求得一阶导,然后将它们组合成为四个方向的导数,其中方向导数是局部最大值的点是组成边缘的候选项。这个算法通过对像素应用滞后阈值(hysteresis threshold)来形成这些轮廓(contour),即采用了两个阈值,上阈值(the upper threshold)和下阈值(the lower threshold)。具体如下:

  1. 若一个像素的梯度大于较大值,就接受;
  2. 若一个像素的梯度小于较小值,就抛弃;
  3. 若一个像素的梯度介于两者之间,那么只有当它连接到一个高于阈值的像素时,才接受。

Canny算法建议(上阈值:下阈值)介于(2:1)和(3:1)之间。OpenCV中由以下函数实现

void cv::Canny(
    cv::InputArray    image,            //输入图像(单通道)
    cv::OutputArray   edges,            //输出图像(灰度图即布尔图)
    double            threshold1,       //下阈值
    double            threshold2,       //上阈值
    int               apertureSize=3,   //Sobel导数算子中的aperture大小
    bool              L2gradient=false  //true=L2-norm(更精准)
);

注意在cv::Canny()参数中,输入图像必须!!!是单通道图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值