Laplacian(iOS)算子(边缘检测)

基本概念

Laplacian算子是n维欧几里德空间的一个二阶微分算子,定义为梯度grad的散度div,因此如果f是二阶可微的函数,则其定义为

Laplacian(iOS)算子(边缘检测)_第1张图片

计算拉普拉斯变换:Laplacian()

void Laplacian( InputArray src,// 输入图像,及源图像,Mat类即可,且须为单通道8位图像

                           OutputArray dst, // 输入的边缘图像,需要和源图片有一样的尺寸和通道数

                           int ddepth,// 目标图像的深度

                           int ksize = 1,

                           double scale = 1, 

                           double delta = 0,

                           int borderType = BORDER_DEFAULT 

);

函数参数的详解

Laplacian(iOS)算子(边缘检测)_第2张图片

代码示例:

Mat im;

UIImageToMat(image1, im);

if (im.empty()) {

return;

}

Mat grayLap,abs_dst;

// 使用高斯滤波消除噪声

GaussianBlur(im, im, cv::Size(3,3), 0);

// 转换为灰度图

cvtColor(im, grayLap, COLOR_RGBA2GRAY);

// 使用Lapiacian函数

Laplacian(grayLap, dst, 5);

// 计算绝对值,并将结果转换为8位

convertScaleAbs(dst, abs_dst);

self.secondImageView.image = MatToUIImage(abs_dst);

效果

Laplacian(iOS)算子(边缘检测)_第3张图片

你可能感兴趣的:(Laplacian(iOS)算子(边缘检测))