利用基本灰度变换对图像进行增强

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3 利用基本灰度变换对图像进行增强

灰度变换原理:灰度变换是一种空域处理方法,其本质是按一定的规则修改每个像素的灰度,从而改变图像的动态范围实现期望的增强效果。灰度变换按映射函数可分为线性、分段线性和非线性等多种形式。

3.1 线性灰度变换

线性灰度变换是将输入图像灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。可突出感兴趣目标,抑制不感兴趣的目标。在实际运算中,原图像f(x,y)的灰度范围为[a,b],使变换后图像g(x,y)的灰度扩展为[c,d],则采用下述线性变换来实现:

c a y x f a

b c

d y x g +---=]),([),(

线性灰度变换对图像每个灰度范围作线性拉伸,将有效地改善图像视觉效果。

源代码如下:

1、利用灰度调整函数变换图像

A=imread('e:\7.tif','tif'); %读入图像 B=imadjust(A,[0.1,0.8],[0,1]); %灰度调整 imwrite(B,'E:\ 1.tif'); %图像保存

subplot(2,2,1);imshow(A); %显示调整前后图像及其直方图 subplot(2,2,2);imhist(A); subplot(2,2,3);imshow(B); subplot(2,2,4);imhist(B);

0100200

500

1000

0100200

500

1000

2、利用灰度调整算法变换图像

clear;

a=60; %图像变换参数设定

b=180;

c=0;

d=255;

A=imread('pout.tif','tif'); %读入图像

[m,n]=size(A);

A=double(A);

for i=1:1:m %灰度调整

for j=1:1:n

if (A(i,j)>=a)&(A(i,j)

B(i,j)=(A(i,j)-a)*(d-c)/(b-a)+c;

end

end

end

uint8(A); uint8(B);

imwrite(B,'E:\2.tif'); %图像保存

subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图subplot(2,2,2); imhist(A);

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

imhist(B);

100

200

0500

1000

100

200

02000

40006000

8000

3.2 分段线性灰度变换

为了突出图像中感兴趣的研究对象,常常要求局部拉伸某一范围的灰度值,或对不同范围的灰度值进行不同拉伸处理,即分段线性拉伸,数学表达式如下:

⎪⎪⎪

⎪⎪

⎪⎨⎧≤<+---≤<+---≤≤=Mf y x f b d

b y x f b Mf d

Mg b y x f a c a y x f a b c

d a y x f y x f a c

y x g ),(]),([),(]),([),(0)

,(),(

源代码如下: clear;

a=80; %图像变换参数设定

b=160;

Mf=255;

c=50;

d=200;

Mg=255;

A=imread('pout.tif','tif'); %读入图像

[m,n]=size(A);

A=double(A);

for i=1:1:m %灰度调整

for j=1:1:n

if A(i,j)

B(i,j)=(c/a)*A(i,j);

elseif (A(i,j)>=a)&(A(i,j)

B(i,j)=(A(i,j)-a)*(d-c)/(b-a)+c;

else

B(i,j)=(A(i,j)-b)*(Mg-d)/(Mf-b)+d;

end

end

end

uint8(A); uint8(B);

imwrite(B,'E:\3.tif'); %图像保存

subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图subplot(2,2,2); imhist(A);

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

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

0100

200

0500

1000

100

200

02000

40006000

8000

3.3 非线性灰度变换

非线性灰度变换在整个灰度范围内采用统一的变换函数,利用变换函数的数学性质实现对不同灰度值区间的扩展和压缩。

1、对数扩展。对数变换常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰度的图像细节更容易看清,从而达到增强的效果。还可使图像灰度分布与人视觉特性相匹配。其具体形式为: ]1),(ln[),(+=y x f c y x g

式中:[f(x,y)+1]是为了避免对零求对数;C 为尺度比例系数,用于调节动态范围。

源代码如下: clear;

A=imread('pout.tif','tif'); %读入图像 B=log(A+1); %灰度调整 imwrite(B,'e:\4.tif'); %图像保存

subplot(2,2,1); imshow(A); %显示调整前后图像及其直方图 subplot(2,2,2); imhist(A);

相关文档
最新文档