利用基本灰度变换对图像进行增强
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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