1 简介
图像噪声的去除一直是图像处理领域的难点,以往介绍的去噪方法主要用于去除二值图像的噪声,不能用于灰度图像的去噪,而且在去噪的同时会引起图像的模糊,为了解决问题,根据PCNN的工作原理和噪声的特点提出了一种基于PCNN的去噪方法.计算机仿真实验结果表明该方法能在有效去除椒盐噪声的同时,很好地保留了图像的细节,防止了图像的模糊,对图像的恢复,图像的识别是十分有益的,但对于严重的高斯噪声,去除效果还不是很理想,该算法有待改进.
2 部分代码
%测试DENOISE函数
clc
close all
clear all
image=imread('lena.jpg');
%imwrite(imnoise(image,'salt & pepper',0.1),'lena1加噪10.bmp')
%tic
%显示源图像
figure
subplot(231)
%subplot(221)
imshow(image);
title('原始无噪声图像')
%添加噪声
X=double(imnoise(image,'sa',0.1));
%subplot(222)
subplot(232)
imshow(X/255)
title('添加了椒盐噪声的图像')
%
% %中值滤波去除噪声
X_medfilt = medfilt2(X);
X_medfilt = medfilt2(X_medfilt);
subplot(233)
imshow(X_medfilt/255);
title('中值滤波去除噪声')
%
% %均值滤波去除噪声
l=ones(3);
l=l/9;
X_mean = conv2(X,l);
subplot(234)
imshow(X_mean/255);
title('均值滤波去除噪声')
%
subplot(235)
imshow(X/255);
title('去除salt噪声后的结果')
% imwrite(X/255,'去除salt噪声_simply.jpg')
cal_entropy(uint8(X))
%下面为去除pepper噪声过程
disp('开始去除pepper噪声:');
X=255-X;
X=denoise_gj(X);
% X=denoise_simply(X);
disp('去除pepper噪声结束。');
X=255-X;
%subplot(224)
subplot(236)
imshow(X/255)
title('去除pepper噪声后的结果')
% imwrite(X/255,'去除pepper噪声_simply.jpg')
cal_entropy(uint8(X))
%toc
3 仿真结果
4 参考文献
[1]邹文洁. "基于PCNN神经网络的图像去噪算法研究." 计算机仿真 25.8(2008):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。