第7章 图像变换_7.1边缘检测

边缘检测的一般步骤:
1 滤波 通常为一阶/二阶导数
2 增强
3 检测 通常有多个元素的梯度点较大,用阈值来筛选

边缘检测的3个评价标准:
1 错误率低
2 定位性高
3 最小响应:图像中的边缘只能标识一次

Canny边缘检测函数:Canny
void Canny(InputArray image,
         OutputArray edges,
double threshold1,
double threshold2,
int apertureSize = 3,
bool L2gradient = false)
参数1 image:输入图像,单通道8位图像
参数2 edges:输出边缘
参数3 threshold1:滞后阈值1
参数4 threshold2:滞后阈值2
参数5 apertureSize:应用的Sobel算子孔径大小
参数6 L2gradient:计算图像梯度幅值标识
例:
Mat src = imread("1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
Mat dst = src.clone();
Canny(src, dst, 150, 100, 3);
imshow("win",dst);

sobel算子:sobel
void sobel(InputArray src,
OutputArray dst,
int ddepth,
int dx,
int dy,
int ksize = 3,
double scale = 1;
double delta = 0;
int borderType = BORDER_DEFAULT)
参数3 ddepth:输出图像的深度,=-1,同src.depth()
输出深度>=src.depth()
参数4 dx:x方向上的差分阶数
参数5 dy:y方向上的差分阶数
参数6 ksize:sobel核大小
参数7 scale:计算导数时可选的缩放因子
参数8 delta:存入dst之前可选的delta
参数9 borderType:边界模式
例:
Mat src = imread("1.jpg");
Mat dst;
Sobel(src,dst, CV_8U, 1, 1);

scharr滤波器:scharr
注意:由于sobel在3*3内核中误差较大,
所以有一个固定3*3内核的函数Scharr
void Scharr(InputArray src, 
OutputArray dst, 
int ddepth,
int dx, 
int dy, 
double scale=1, 
double delta=0,
int borderType=BORDER_DEFAULT );
Scharr(src,dst,ddepth,dx,dy,scale,delta,borderType)
等价于
Sobel(src,dst,ddepth,dx,dy,CV_SCHARR,scale,delta,borderType)
其中:
/* Special filters */
enum
{
    CV_SCHARR =-1,
    CV_MAX_SOBEL_KSIZE =7
};

例:
Mat src = imread("1.jpg");
Mat dst;
Scharr(src,dst, CV_8U, 1, 1);

Laplacian算子:Laplacian
void Laplacian( InputArray src, 
OutputArray dst, 
        int ddepth,
                        int ksize=1, 
                        double scale=1,
                        double delta=0,
                        int borderType=BORDER_DEFAULT );
参数3 ksize:当=1时,采用以下3*3孔径
0  1 0
1 -4 1
0  1 0
                
例:
Mat src = imread("1.jpg");
Mat dst;

Laplacian(src, dst, CV_8U, 5);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值