OPENCV-6 学习笔记
边缘检测
步骤:
- 滤波
- 增强
- 检测
canny算子—Canny 的目标是找到一个最优的边缘检测算法
评价标准:
1.低错误率: 标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报。
2.高定位性: 标识出的边缘要与图像中的实际边缘尽可能接近。
3.最小响应: 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。
函数:
void Canny(InputArray image,OutputArray edges, double threshold1, double threshold2, int apertureSize=3,bool L2gradient=false )
用例:
Mat src = imread("1.jpg");
Canny(src, src, 3, 9,3 );
imshow("【效果图】", src);
sobel算子—结合了高斯平滑和微分求导,用来计算图像灰度函数的近似梯度。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量
函数:
void Sobel (
InputArray src,//输入图 OutputArray dst,//输出图 int ddepth,//输出图像的深度 int dx, //x方向梯度int dy, //y方向梯度int ksize=3, double scale=1, double delta=0, int borderType=BORDER_DEFAULT );
其小弟——Scharr函数,无内核大小的参数
void Scharr(
InputArray src, //源图 OutputArray dst, //目标图 int ddepth,//图像深度 int dx,// x方向上的差分阶数 int dy,//y方向上的差分阶数 double scale=1,//缩放因子 double delta=0,// delta值 intborderType=BORDER_DEFAULT )// 边界模式
Laplace算子
函数:
void Laplacian(InputArray src,OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, intborderType=BORDER_DEFAULT );