空间与图像增强

 

一、利用Matlab实现亮度的变换

1、灰度变换

    灰度变换就是对图像像素灰度值进行修正,使图像灰度值动态范围加大,对比度扩展,成像均匀清晰,达到改善图像质量的目的。

clear;

clc

I = imread('E:\DigitalImageProcessing\Image\Breast.jpg');

J = imadjust(I,[0 1],[1 0]); %明暗反转

J1 = imadjust(I,[0.5 0.75],[0 1]);%亮度范围扩展

subplot(1,3,1),imshow(I);

subplot(1,3,2),imshow(J);

subplot(1,3,3),imshow(J1);

 

2、直方图均衡化

一般情况下遥感图像灰度分布集中在较窄的区间,从而引起图像细节的模糊,为了使图像细节清晰,并使一些目标突出,达到图像增强的效果,可采用直方图均衡化使原图像灰度集中的区域拉开,使灰度分布均匀,从而增强图像整体对比度,使图像细节清晰。

代码:

clear;

clc

I = imread('E:\DigitalImageProcessing\images1\31.gif');

subplot(2,2,1),imshow(I);

title('原图');

subplot(2,2,2),imhist(I);%显示图像I的直方图

title('原图直方图');

G = histeq(I);%均衡化图像I

subplot(2,2,3),imshow(G);

title('均衡化后');

subplot(2,2,4),imhist(G);

title('均衡化后直方图');

 

二、领用Matlab实现空间滤波

   进行图像处理时,有时需要先进行去除噪声的工作。最直接的去除噪声的方法是用滤波器进行滤波处理,对图像的像素执行滤波运算时,若对邻域内的像素的计算为线性,则对应的去除噪声技术就是线性空间滤波技术,否则,称此技术为非线性空间滤波技术。

1、线性空间滤波器

使用了生成淹模函数fspecial()和实现线性空间滤波函数imfilter()。

 

代码:

I =imread('E:\DigitalImageProcessing\images1\moon.jpg');

subplot (3,2,1),imshow(I);

w = fspecial('laplacian',0); %采用标准的拉普拉斯滤波器

g1 = imfilter(I,w,'replicate');% %图像I经过w掩膜向卷积,图像大小通过复制外边界的值扩展

subplot(3,2,2),imshow(g1);

%效果并不理想,因为原图是一幅uint8类图像,输出结果仍为uint8类,所有像素均为正值,

%而拉普拉斯滤波模板中存在负值,变换结果中的所有负值被截掉了。

%解决此问题,须先进行类型变换

f1 = im2double(I);

g2 = imfilter(f1,w,'replicate');

subplot(3,2,3),imshow(g2);

%此图像即含有负值的滤波结果,相比于原图,丢失了一些灰度色调,

%故还需用原图减去此滤波结果(以还原失去的灰度色调):

g3 = f1-g2;

subplot(3,2,4),imshow(g3);

%s使用掩膜为w8,获得的效果更好

w8 = [1 1 1; 1 -8 1; 1 1 1];

g8 = I - imfilter(I,w8,'replicate');

subplot(3,2,5),imshow(g8);

 

结果:

 

 

 

你可能感兴趣的:(工作,image,matlab,扩展,IM,图像处理)