实验一 灰度变换及直方图变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一图像空域增强——灰度变换
一.实验内容:
图像灰度变换
二.实验目的:
1、理解、掌握对数变换、幂次变换、对比度拉伸的原理方法
2、了解图像灰度级的概率分布情况,掌握直方图均衡化原理和方法
3、编程实现图像的对数变换、幂次变换、对比度拉伸、直方图均衡化三.实验步骤:
1.获取实验用图像:Fig3.05(a).jpg. 使用imread函数将图像读入Matlab;并对其进行对数变换(令c=1);应用sublpot在同一个图像窗口中显示原图像及对数变换后的图像,分别用title标注。
原理:对数变换的一般表达式为:
s c r
=+
log(1)
其中c是一个常数,并假设0
r≥。
该种变换是一窄带低灰度输入图像映射为一宽带输出值。
相应的是输入灰度的高调整值。
可以利用这种变换来扩展被压缩的高值图像中的暗像素。
我们用matlab编程获取了图像Fig3.05(a).jpg,并对其进行对数变换,所得结果如下图1所示:
原始图像对数变换
图1
分析图像:比较上面两幅图像,我们会发现经过对数变换后的图像的细节可见程度比原始图像更明显些,在原始图像中最亮的像素显示为重点,灰度
低的像素(恰恰是重要的)却观察不到。
经过对数变换扩展灰度低的
像素从而使暗像素观察的很清楚。
实验结果分析:经过matlab编程很好地对原始图像进行了对数变换,并取得了很好的效果,达到了实验地目的。
程序如下:clear all;
close all;
clc;
f=imread('D:\实验一灰度变换及直方图变换\Fig3.05(a).jpg');
s=log(1+double(f));
subplot(1,2,1);imshow(f);title('原始图像');
subplot(1,2,2);imshow(s);title('对数变换');
2.产生灰度变换函数T1,使得:
0.3r r < 0.35
s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65
1 + 0.3(r – 1) r > 0.65
用T1对原图像Fig3.10(b).jpg进行处理,在同一窗口显示处理前后的图像。
原理:灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度的动态范围,适用于低对比度图像的处理,增强对比度。
我们用matlab编程获取了图像Fig3.10(b).jpg,并对其进行对比度拉伸,所得结果如下图2所示:
原始图像处理后图像
图2
分析图像:比较图2中的两幅图像,我们发现经过对比度拉伸处理后的图像明显比原始图像清晰。
在原始图像中,花粉的对比度较低,经过灰度变换
后的图像的对比度比较高。
这是因为变换函数把灰度级有原范围线性
地拉伸至饱和范围,使得变换后的图像对比度显著增强。
实验结果分析:运用matlab,对原始图像进行灰度变换,显著增强了图片的对比度,达到了实验目的。
程序如下:clear all;
close all;
clc;
f=imread('D:\实验一灰度变换及直方图变换\Fig3.10(b).jpg');
r=f; if r<0.35 s=0.3*r; else if r<=0.65
s=0.105+2.6333*(r-0.35); else
s=1+0.3*(r-1); end end
subplot(1,2,1);imshow(f);title('原始图像'); subplot(1,2,2);imshow(s,[]),title('处理后图像');
3. 分别用 s = r 0.6; s = r 0.4; s = r 0.3 对Fig3.08(a).jpg 图像进行幂次变换。
为简便起见,可使用Matlab 中的imadjust 函数;在同一图像窗口显示原图像,伽玛为0.6,0.4,0.3的图像 原理:幂次变换的基本形式为:
s c r γ
= 其中c 和γ为正常数。
有时考虑到偏移量(即当输入为0时可测量输出),上
式也可写为 ()s c r γε=+。
当1γ<时把输入窄带暗值映射到宽带输出值,增强 图像的对比度。
当1γ>时,正好与1γ<时相反。
根据此原理,我们用matlab 进行编程来实现对图像Fig3.08(a).jpg 进行1γ< 的幂次变换处理,其结果图像如下图3所示:
原始图像
伽码为0.6
伽码为0.4伽码为0.3
图3
分析图像:由于原始图像整体呈现暗色,我们知道当伽马小于1时,幂次变换把窄带低灰度输入映射到宽带输出值,此时,幂次变换相当于对数变换,
只不过比对数变换更灵活些,因此,我们通过不断尝试伽马值来达到
增强图像的目的。
从图3中我们可观察到:在伽马值从0.6到0.4时,
可看到更多的细节,当伽马值进一步减小到0.3时,背景中的细节进
一步增强,但图像看上去开始有轻微的“冲淡”外观的那一点的对比
度开始减少,尤其是背景。
比较所有结果,我们发现对比度和可辨
别细节的最好增强效果在伽马为0.4时。
程序如下:clear all;
close all;
clc;
f=imread('D:\实验一灰度变换及直方图变换\Fig3.08(a).jpg');
r=im2double(f);
s1=power(r+10.^(-100),0.6);
s2=power(r+10.^(-100,0.4);
s3=power(r+10.^(-100,0.3);
subplot(2,2,1),imshow(f),title('原始图像');
subplot(2,2,2),imshow(s1,[]),title('伽码为0.6');
subplot(2,2,3),imshow(s2,[]),title('伽码为0.4');
subplot(2,2,4),imshow(s3,[]),title('伽码为0.3');
4.对Fig3.09(a).jpg图像进行幂次变换,伽玛分别为3、4、5;在同一窗口下分别显示原图像及伽玛为3、4、5的图像。
原理如上3所述。
根据此原理,我们用matlab进行编程来实现对图像Fig3.09(a).jpg γ>的幂次变换处理,其结果图像如下图4所示:
进行1
原始图像伽码为3
伽码为4伽码为5
图4
分析图像:由于原始图像整体呈现亮色,我们知道当伽马大于1时,幂次变换把宽带高灰度输入映射到窄带输出值。
因此,我们通过不断尝试伽马值
来达到增强图像的目的。
从图4中我们可观察到:在伽马值从3到4
时,可得到合适的效果,且后者有较高的对比度所以效果比较好,当
伽马值进一步增加到5时,有些地方太暗而丢失一些细节,比较所有
结果,我们发现对比度和可辨别细节的最好增强效果在伽马为4时。
实验结果分析:在上述的幂次变换中,我们知道对于不同的图片进行的幂次变换也不相同,对于整体呈暗色的图片,实行适当的伽马小于1的幂
次变换可达到较好效果。
相反,对于整体呈亮色的图片,实行合
适的伽马大于1的幂次变换可达到较好效果。
总而言之,本次试
验取得了很好的效果,达到了实验目的。
程序如下:clear all;
close all;
clc;
f=imread('D:\实验一灰度变换及直方图变换\Fig3.09(a).jpg');
r=double(f);
s1=power(r,3);s2=power(r,4);s3=power(r,5);
subplot(2,2,1),imshow(f),title('原始图像');
subplot(2,2,2),imshow(s1,[]),title('伽码为3');
subplot(2,2,3),imshow(s2,[]),title('伽码为4');
subplot(2,2,4),imshow(s3,[]),title('伽码为5');
5.分别读入Fig3.15(a)1.jpg 、Fig3.15(a)2.jpg 、Fig3.15(a)3.jpg 、Fig3.15(a)4.jpg ,绘出直方图;并对这四幅图像进行直方图均衡化处理,显示处理后的图像及直方图。
用matlab 中的直方图均衡化函数,将Fig3.15(a)1.jpg 、Fig3.15(a)2.jpg 、Fig3.15(a)3.jpg 、Fig3.15(a)4.jpg ,四幅图进行均衡化处理,并作出直方图,如下所示:
原始图像3.15(a)1
0直方图
100
200
处理后图像3.15(a)1
100200
原始图像3.15(a)2
0直方图
100
200
处理后图像3.15(a)2
100
200
原始图像
3.15(a)3
0直方图
100
200
处理后图像3.15(a)3
100
200
原始图像3.15(a)4
05001000150020002500300035004000
直方图
100
200
处理后图像3.15(a)4
00
100
200
实验结果分析:从上面图中,我们可以看出,经过直方图均衡化后的图像与原始
图像相比更清晰了。
我们也发现,对于直方图不均衡的原始图像的增强效果更明显(观察前6幅图),这也说明此次实验效果很好。
程序如下:clear all;
close all; clc;
f1=imread('D:\实验一 灰度变换及直方图变换\Fig3.15(a)1.jpg'); f2=imread('D:\实验一 灰度变换及直方图变换\Fig3.15(a)2.jpg'); f3=imread('D:\实验一 灰度变换及直方图变换\Fig3.15(a)3.jpg'); f4=imread('D:\实验一 灰度变换及直方图变换\Fig3.15(a)4.jpg'); f11=histeq(f1);f22=histeq(f2);f33=histeq(f3);f44=histeq(f4); subplot(2,2,1),imshow(f1),title('原始图像3.15(a)1'); subplot(2,2,2),imhist(f1),title('直方图');
subplot(2,2,3),imshow(f11),title('处理后图像3.15(a)1'); subplot(2,2,4),imhist(f11),title('处理后直方图');
figure,subplot(2,2,1),imshow(f2),title('原始图像3.15(a)2'); subplot(2,2,2),imhist(f2),title('直方图');
subplot(2,2,3),imshow(f22),title('处理后图像3.15(a)2'); subplot(2,2,4),imhist(f22),title('处理后直方图');
figure,subplot(2,2,1),imshow(f3),title('原始图像3.15(a)3'); subplot(2,2,2),imhist(f3),title('直方图');
subplot(2,2,3),imshow(f33),title('处理后图像3.15(a)3'); subplot(2,2,4),imhist(f33),title('处理后直方图');
figure,subplot(2,2,1),imshow(f4),title('原始图像3.15(a)4'); subplot(2,2,2),imhist(f4),title('直方图');
subplot(2,2,3),imshow(f44),title('处理后图像3.15(a)4'); subplot(2,2,4),imhist(f44),title('处理后直方图');。