数字图像处理实验五--图像增强

数字图像处理实验五

(图像增强)

实验内容:
  1. 对曝光不足的图像采用灰度线性变换对图像每一个像素灰度做线性拉伸。
  2. 利用空间域平滑滤波器对图像进行平滑。
  3. 利用Prewitt、Sobel对图像进行锐化。
  4. 利用高斯低通滤波对图像进行平滑。
实验步骤:
  1. 对给定图像figure51做线性拉伸
I=imread('./figure51.jpg');
I=im2double(I);
figure;
subplot(1,2,1);
imshow(I);
xlabel('原图'); 
a = 1.5;
b = -150;           
I2 = a .* I + b/255;
subplot(1,2,2);
imshow(I2);
xlabel('a=1.5 b=-150 增强对比度'); 

I=imread('figure51.jpg');
I=im2double(I);

效果图:线性拉伸
2.使用给定的图像lena添加均值为0,方差为0.05的高斯噪声,进行3x3、5x5、7x7邻域平滑。

imag=imread('lena.jpg'); 
subplot(2,3,1);imshow(imag);
xlabel('原图'); 
 
img_noise=double(imnoise(imag,'gaussian',0.05));
subplot(2,3,2);imshow(img_noise,[]);
xlabel('添加均值为0 方差为0.005的噪声');

img_smoothed1=imfilter(img_noise,fspecial('average',3));
subplot(2,3,4);imshow(img_smoothed1,[]);
xlabel('3*3 邻域平滑');
 
img_smoothed2=imfilter(img_noise,fspecial('average',5));
subplot(2,3,5);imshow(img_smoothed2,[]);
xlabel('5*5邻域平滑');
 
img_smoothed3=imfilter(img_noise,fspecial('average',7));
subplot(2,3,6);imshow(img_smoothed3,[]);
xlabel('7*7邻域平滑'); 

效果图:平滑
3.使用Prewitt、Sobel对给定的图像lena进行锐化。

I = imread("lena.jpg");
hx = [-1,-2,-1;
    0,0,0;
    1,2,1];
hy = hx';
gradx = imfilter(I,hx);
grady = imfilter(I,hy);
grad = abs(gradx)+abs(grady);

hx1 = [-1,-1,-1;
    0,0,0;
    1,1,1];
hy1 = hx1';
gradx1 = imfilter(I,hx1);
grady1 = imfilter(I,hy1);
grad1 = abs(gradx1)+abs(grady1);

subplot(2,2,1);
imshow(I);
xlabel("原始图");

subplot(2,2,2);
imshow(grad);
xlabel("Sobel算子锐化");

subplot(2,2,4);
imshow(grad1);
xlabel("Prewitt算子锐化");

效果图:
锐化

4.使用高斯低通滤波对图像进行平滑

I=imread('lena.jpg');
subplot(2,2,1);
imshow(I);
I1=fftshift(fft2(I));
[M,N]=size(I1);
n = 2; sig=10;
n1=floor(M/2);n2=floor(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=exp(-((d^2/(2*sig^2))));
        I2(i,j)=H*I1(i,j);
    end
end
I2=ifftshift(I2);
I3=real(ifft2(I2));
subplot(2,2,2);
imshow(I3,[]);
xlabel("sig = 10");

n = 2;sig=20;
n1=floor(M/2);n2=floor(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=exp(-((d^2/(2*sig^2))));
        I2(i,j)=H*I1(i,j);
    end
end
I2=ifftshift(I2);
I3=real(ifft2(I2));
subplot(2,2,3);
imshow(I3,[]);
xlabel("sig = 20");
 
n=2;sig=40;
n1=floor(M/2);n2=floor(N/2);
for i=1:M
    for j=1:N
        d=sqrt((i-n1)^2+(j-n2)^2);
        H=exp(-((d^2/(2*sig^2))));
        I2(i,j)=H*I1(i,j);
    end
end
        
I2=ifftshift(I2);
I3=real(ifft2(I2));
subplot(2,2,4);
imshow(I3,[]);
xlabel("sig = 40");

效果图:高斯低通

问题讨论:

基于灰度线性变换的图像增强将图像的每个像素灰度做线性拉伸,可以原本模糊不清的原图变得清晰,改善视觉效果。基于空间域平滑滤波的图像增强可以降噪,但是降低噪声的同时也会使图像在边缘和细节处变得模糊,邻域越大,降噪能力越强,图像就越模糊。基于空间域锐化滤波的图像增强,通过微分使得图像边缘和轮廓变得突出、清晰。使用Prewitt算子对水平好竖直两个方向的边缘进行增强,而Sobel算子对像素的4邻域采用带权的方法计算查分,对比来讲Sobel锐化的效果更加突出一些。

  • 11
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值