clear all
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('s7.jpg')%读入JPG彩色图像文件
figure(1)subplot(2,2,1)imshow(PS)title('原图像灰度图')
%二,绘制直方图
[m,n]=size(PS)%测量图像尺寸参数
GP=zeros(1,256) %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(PS==k))/(m*n) %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure(1)subplot(2,2,2)bar(0:255,GP,'g')%绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三,直方图均衡化
S1=zeros(1,256)
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i)%计算Sk
end
end
S2=round((S1*256)+0.5) %将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i))) %计算现有每个灰度级出现的概率
end
figure(1)subplot(2,2,4)bar(0:255,GPeq,'b') %显示均衡化后的直方图
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
%四,图像均衡化
PA=PS
for i=0:255
PA(find(PS==i))=S2(i+1) %将各个像素归一化后的灰度值赋给这个像素
end
figure(1)subplot(2,2,3)imshow(PA) %显示均衡化后的图像
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp')
%x=load('xxx')
% 对图像进行N层分解
[c,l] = wavedec2(x,N,'sym4)
c_size = size(x)
% 弱化不重要的分解系数,增强重要的分解系数,这里假设阈值选取为k
for i=1:c_size(2)
if (c(i)>k)
c(i)=2*c(i) %这里假设增强两倍
else
c(i)=0.5*c(i)
end
end
%重构图像
x1=waverec2(c,l,'sym4')
I=imread('D:\我的文档\MATLAB\cameraman.bmp')J0=imnoise(I,'gaussian')
J1=imnoise(I,'salt &pepper')
J0J3=imfilter(J0,fspecial('average'))
J0J5=imfilter(J0,fspecial('average',[5 5]))
J0Z3=medfilt2(J0)
J0Z5=medfilt2(J0,[5 5])
J1J3=imfilter(J1,fspecial('average'))
J1J5=imfilter(J1,fspecial('average',[5 5]))
J1Z3=medfilt2(J1)
J1Z5=medfilt2(J1,[5 5])
subplot(2,2,1),imshow(I)
title('原始图像')
subplot(2,2,2),imshow(J0)
title('加入零均值高斯噪声')
subplot(2,2,3),imshow(J1)
title('加入椒盐噪声')
figure,
subplot(2,2,1),imshow(J0J3)
title('对高斯噪声,采用3x3均值滤波')
subplot(2,2,2),imshow(J0J5)
title('对高斯噪声,采用5x5均值滤波')
subplot(2,2,3),imshow(J0Z3)
title('对高斯噪声,采用3x3中值滤波')
subplot(2,2,4),imshow(J0Z5)
title('对高斯噪声,采用5x5中值滤波')
figure,
subplot(2,2,1),imshow(J1J3)
title('对椒盐噪声,采用3x3均值滤波')
subplot(2,2,2),imshow(J1J5)
title('对椒盐噪声,采用5x5均值滤波')
subplot(2,2,3),imshow(J1Z3)
title('对椒盐噪声,采用3x3中值滤波')
subplot(2,2,4),imshow(J1Z5)
title('对椒盐噪声,采用5x5中值滤波')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)