亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> MATLAB

MATLAB高斯拉普拉斯滤波器:图像边缘检测实战

高斯滤波器是图像处理中用于模糊/平滑图像的线性滤波器,基于高斯函数定义形状。常用于降噪和减少细节,使图像更适合后续处理分析。

高斯拉普拉斯(LoG)滤波器是流行的图像增强与边缘检测滤波器,结合高斯滤波器和平滑后拉普拉斯算子。高斯滤波平滑降噪,拉普拉斯检测边缘。

LoG滤波器可检测不同尺度边缘。调整高斯标准差控制检测尺度:较小σ检测精细细节,较大σ检测宽泛特征。

示例1:使用fspecial()函数

fspecial()创建高斯滤波器,再计算其拉普拉斯得LoG滤波器。注意拉普拉斯滤波器要求高斯滤波器为double类型。

% 读取图像
img = imread('peppers.jpg');
% 转灰度
if size(img, 3) == 3
    img_gray = rgb2gray(img);
else
    img_gray = img;
end
% 创建高斯滤波器
sigma = 2;  % 标准差
hsize = 2 * ceil(3 * sigma) + 1;  % 滤波器尺寸
gaussian_filter = fspecial('gaussian', hsize, sigma);
% 创建LoG滤波器
log_filter = fspecial('log', hsize, sigma);
% 应用LoG滤波器
filtered_img = imfilter(double(img_gray), log_filter, 'conv', 'replicate');
% 显示对比
subplot(1, 2, 1); imshow(img_gray); title('原始图像');
subplot(1, 2, 2); imshow(uint8(filtered_img)); title('LoG滤波后图像');

代码详解:

示例2:拉普拉斯滤波器与LoG滤波器对比

对'peppers.jpg'分别应用拉普拉斯和LoG滤波器:

x = imread('peppers.jpg');
figure; imshow(x); title('输入图像');
figure;
h = fspecial('laplacian');
filtered_image = imfilter(x, h);
imshow(filtered_image); title('拉普拉斯滤波输出');
figure;
h = fspecial('log');
filtered_image = imfilter(x, h);
imshow(filtered_image); title('高斯拉普拉斯滤波');

关键点:

MATLAB

  1. MATLAB 函数详解:定义、工作区、输入输出与多种函数类型
  2. MATLAB 循环控制全攻略:for、while、嵌套循环与 break/continue 流程控制
  3. MATLAB 常用命令速查:会话管理、系统操作、输入输出、矩阵数组、绘图可视化
  4. MATLAB高斯拉普拉斯滤波器:图像边缘检测实战
  5. MATLAB多项式求导指南:polyder函数高效计算导数
  6. MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
  7. MATLAB 数据导入完全指南:importdata 与低级文件 I/O
  8. MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
  9. MATLAB 多项式详解:表示、求值、求根与曲线拟合
  10. MATLAB 冒号运算符详解:向量创建与高效迭代
  11. MATLAB 代数方程求解:solve、因式分解与化简
  12. MATLAB M 文件编程:脚本与函数的创建、运行与最佳实践