opencv边缘检测-canny函数

边缘检测一般步骤:
1、滤波:这里推荐使用高斯滤波
2、增强:增强算法可将灰度图点邻域强度值有显著变化的点凸显出来。可用形态学梯度来计算图像的梯度
3、检测:可用canny、sobel、Laplacian算子进行边缘检测

Canny算子
canny边缘检测步骤:
1、原图-------->灰度图
2、高斯滤波
3、canny边缘检测

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
    
    
    Mat src=imread("1.jpg");
    Mat src_gray,dst;
    imshow("原图",src);
    cvtColor(src,src_gray,COLOR_RGB2GRAY);

    GaussianBlur(src_gray,dst,Size(5,5),10,10);

    Canny(dst,dst,100,300,3);
    
    imshow("效果图",dst);
    waitKey(0);

    return 0;
}

cann函数解析:

   Canny(dst,dst,100,300,3);
  • 第三个参数(100):第一个滞后性阈值
  • 第四个参数(300):第二个滞后性阈值
  • 第五个参数:sobel算子的孔径大小,其有默认值3
    需要注意的是,这个函数阈值1和阈值2两者中比较小的值用与边缘连接,而较大的值用来控制强化边缘的初始段,推荐高低阈值比在2:1~3:1之间。

若某一像素值超过高阈值,该像素被保留为边缘像素;若某一像素值小于低阈值,该像素被排除;若某一像素值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。

猜你喜欢

转载自blog.csdn.net/seniorc/article/details/112327597