Laplacian(iOS)算子(边缘检测)
基本概念
Laplacian算子是n维欧几里德空间的一个二阶微分算子,定义为梯度grad的散度div,因此如果f是二阶可微的函数,则其定义为
计算拉普拉斯变换:Laplacian()
void Laplacian( InputArray src,// 输入图像,及源图像,Mat类即可,且须为单通道8位图像
OutputArray dst, // 输入的边缘图像,需要和源图片有一样的尺寸和通道数
int ddepth,// 目标图像的深度
int ksize = 1,
double scale = 1,
double delta = 0,
int borderType = BORDER_DEFAULT
);
函数参数的详解
代码示例:
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);
效果