数字图像处理图像增强实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
班级:08108班
姓名:王胤鑫 09号学号:08210224
一、实验内容
给出噪声图像Girl_noise.jpg,请选择合适的图像增强算法,给出你认为最优的增强后的图像。
可以使用Matlab - Image Processing Toolbox 中的处理函数。
原始图像如下:
二、算法分析
对于给出的图像中有灰色的噪声,因此首先处理灰色的线条,根据其方差的大小来判断其所在行。对于两条白色的噪声,根据与前后两行的对比来判断其所在位置。程序中设定灰色线条处理的均方差门限为0.1,白线处理的标准为与前后两行的差值超过0.2(转换为double型)。滤除噪声之后再通过中值滤波、拉普拉斯图像增强等方式对图像进行处理。
三、matlab 源程序
clear all;clc;
f=imread('girl_noise.jpg');
figure,imshow(f),title('原始图像');
[m,n]=size(f);
f0= im2double(f); % 整型转换为 double 类
f1=f0;
std_i=zeros(1,m-2);
%灰线处理
for i=2:m-1
%灰线处理
std_i(i-1)=std(f0(i,:));
if(std_i(i-1)<0.1)
for j=1:m
f0(i,j)=(f0(i-1,j)+f0(i+1,j))/2;
end
end
end
figure,imshow(f0),title('滤除灰线后的图像');
fz=f0-f1;
[r,c]=find(fz~=0);%寻找灰线噪声的位置
f2=f0;
change=0;
count=0;
for i=3:m-2
%白线处理
for j=1:m
if(abs(f0(i,j)-f0(i-1,j))>0.2&&abs(f0(i,j)-f0(i+1,j))>0.2)
count=count+1;
end
if(count>n*0.8)
count=0;
change=1;
break;
end
end
if(change==1)
for k=1:m
f0(i,k)=(f0(i-1,k)+f0(i+1,k))/2;
end
change=0;
count=0;
end
end
figure,imshow(f0),title('滤除白线后的图像');
fz1=f2-f0;
[r1,c1]=find(fz1~=0); %寻找白线噪声的位置
fn = medfilt2(f0); %反射对称填充
figure, imshow(fn),title('中值滤波后的图像');
f0 = im2double(fn); % 整型转换为 double 类
g =2*f0- imfilter(f0,w4, 'replicate'); % 增强后的图像
figure, imshow(g),title('高提升滤波图像(A=2)');
四、图像处理结果
五、结果分析
从上面结果可以看出,带状噪声处理部分,已经基本将带状噪声去除。并且通过程序找出了灰色噪声所在行为192,白色噪声所在行为179,182.
程序中的判断条件为白色噪声和前后两行的像素值相差超过一定的范围(double类型0.2),并且此类点在一行中所在的比例超过80%,与给出的原始图像对应。有程序结果可知,处理过程中仅仅对噪声所在行做了修正,除此之外并且未引入任何其他人为噪声。
而对于处理之后的图像存在的椒盐噪声,经过中值滤波器已经基本可以将椒盐噪声处理的比较好。
另外,程序中也做了A=2的高提升滤波,增强了原始信息,有图可以看出,除了细节增强意外,原始信息更加丰富,因此比之前的图像明亮许多。
(注:可编辑下载,若有不当之处,请指正,谢谢!)