当前位置: 代码迷 >> 综合 >> 【图像去噪】基于自适应权值形态学实现图像去噪matlab代码
  详细解决方案

【图像去噪】基于自适应权值形态学实现图像去噪matlab代码

热度:20   发布时间:2023-12-04 00:29:13.0

1 简介

针对去除周期性噪声的同时容易造成图像的失真或降噪效果不理想的问题,提出了一种基于权重自适应形态学的周期性噪声去除方法.该方法使用不同尺度的结构元素对图像的周期性噪声进行串行处理,再将串行处理的结果并行处理,并通过自适应权值算法来构建复合级联滤波器,使用该滤波器滤除图像的周期性噪声.为了验证该算法的去噪性能,对周期性噪声及混合噪声进行了常用去噪算法的对比性实验.结果表明,视觉上,使用该算法去噪后的图像去噪效果较好且图像边缘和细节比较清晰;定量评价标准上,使用该算法去噪后的图像的PSNR和SSIM都较高.因此,该算法有效地抑制了图像中的周期性噪声,同时较好地保持了图像的几何特征,具有更好的鲁棒性.

2 部分代码

clc; clear all; close all;
filename = fullfile(pwd, 'images/im.jpg');
Img = imread(filename);
if ndims(Img) == 3I = rgb2gray(Img);
elseI = Img;
end
Ig = imnoise(I,'poisson');
s = GetStrelList();
e = ErodeList(Ig, s);
f = GetRateList(Ig, e);
Igo = GetRemoveResult(f, e);
figure;
subplot(1, 2, 1); imshow(I, []); title('原图像');
subplot(1, 2, 2); imshow(Ig, []); title('噪声图像');
figure;
subplot(2, 2, 1); imshow(e.eroded_co12, []); title('串联1处理结果');
subplot(2, 2, 2); imshow(e.eroded_co22, []); title('串联2处理结果');
subplot(2, 2, 3); imshow(e.eroded_co32, []); title('串联3处理结果');
subplot(2, 2, 4); imshow(e.eroded_co42, []); title('串联4处理结果');
figure;
subplot(1, 2, 1); imshow(Ig, []); title('噪声图像');
subplot(1, 2, 2); imshow(Igo, []); title('并联去噪图像');
psnr1 = PSNR(I, e.eroded_co12);
psnr2 = PSNR(I, e.eroded_co22);
psnr3 = PSNR(I, e.eroded_co32);
psnr4 = PSNR(I, e.eroded_co42);
psnr5 = PSNR(I, Igo);
psnr_list = [psnr1 psnr2 psnr3 psnr4 psnr5];
figure; 
plot(1:5, psnr_list, 'r+-');
axis([0 6 18 24]);
set(gca, 'XTick', 0:6, 'XTickLabel', {'', '串联1', '串联2', '串联3', ...'串联4', '并联', ''});
grid on;
title('PSNR曲线比较');

3 仿真结果

4 参考文献

[1]戴丹, & 张兴刚. (2018). 基于权重自适应形态学的周期性噪声去除方法. 计算机技术与发展, 028(005), 9-12.

部分理论引用网络文献,若有侵权联系博主删除。

5 MATLAB代码与数据下载地址

见博客主页

  相关解决方案