数字图像基本操作和灰度调整.docx
- 文档编号:29512514
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:16
- 大小:752.24KB
数字图像基本操作和灰度调整.docx
《数字图像基本操作和灰度调整.docx》由会员分享,可在线阅读,更多相关《数字图像基本操作和灰度调整.docx(16页珍藏版)》请在冰豆网上搜索。
数字图像基本操作和灰度调整
数字图像处理实验
(一)
专业班级
学号
姓名
实验名称
实验一数字图像基本操作及灰度调整
一.实验目的
1.掌握读、写图像的基本方法;
2.掌握MATLAB语言中图像数据和信息的读取方法;
3.理解图像灰度变换处理在图像增强的作用;
4.掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。
二.实验基本原理
6.灰度变换
灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。
0)图像反转
灰度级范围为[0,L-1]的图像反转可由下式获得
1)对数运算:
有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。
解决的方法是对原图进行灰度压缩,如对数变换:
s=clog(1+r),c为常数,r≥0
2)幂次变换:
3)对比拉伸:
在实际使用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:
其对应的数学表达式为:
7.直方图均衡化
灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。
依据定义,在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:
式中:
nk为图像中出现rk级灰度的像素数,n是图像像素总数,而nk/n即为频数。
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。
假定变换函数为
(a)Lena图像(b)Lena图像的直方图
图1-1Lena图像及直方图
当灰度级是离散值时,可用频数近似代替概率值,即
式中:
l是灰度级的总数目,pr(rk)是取第k级灰度值的概率,nk是图像中出现第k级灰度的次数,n是图像中像素总数。
所以积分可以表示为下列累计分布函数(cumulativedistributionfunction,CDF)
三.实验结果和分析
1.熟悉MATLAB语言中对图像数据读取,显示等基本函数。
a.将MATLAB目录下work文件夹中的forest.tif图像文件读出.
对应源代码如下:
[I,map]=imread('forest.tif'),
Imshow(I,map)
结果如下图所示:
图3-1
尝试修改map颜色矩阵的值,再将图像显示出来,相关代码如下:
[I,map]=imread('forest.tif'),Imshow(I,map/4)
对应图像颜色的变化如下:
图3-2
Imfinfo函数的使用,显示图片相关信息,其对应源代码如下:
imfinfo('forest.tif','tif')
对应结果如下
ans=
Filename:
'forest.tif'
FileModDate:
'04-Dec-200013:
57:
58'
FileSize:
124888
Format:
'tif'
FormatVersion:
[]
Width:
447
Height:
301
BitDepth:
8
ColorType:
'indexed'
FormatSignature:
[7373420]
ByteOrder:
'little-endian'
NewSubfileType:
0
BitsPerSample:
8
Compression:
'PackBits'
PhotometricInterpretation:
'RGBPalette'
StripOffsets:
[17x1double]
SamplesPerPixel:
1
RowsPerStrip:
18
StripByteCounts:
[17x1double]
XResolution:
72
YResolution:
72
ResolutionUnit:
'Inch'
Colormap:
[256x3double]
PlanarConfiguration:
'Chunky'
TileWidth:
[]
TileLength:
[]
TileOffsets:
[]
TileByteCounts:
[]
Orientation:
1
FillOrder:
1
GrayResponseUnit:
0.0100
MaxSampleValue:
255
MinSampleValue:
0
Thresholding:
1
ImageDescription:
'CarmanahAncientForest,BritishColumbia,Canada
b将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray()将其转化为灰度图像,记为变量B,对应代码如下:
I=imread('b747.jpg'),
Imshow(B);B=rgb2gray(I)
对应结果如下:
图3-3
结果分析:
观察了图像数据
了解一下数字图像在MATLAB中的处理就是处理一个矩阵
rgb2gray()将真彩色图像转换成灰度图像或者将彩色色图转换成灰度色图
2.图像灰度变换处理在图像增强的作用,对应源代码如下:
I=imread('tianya.jpg');
J=rgb2gray(I);
BW=im2bw(I);
HSV=rgb2hsv(I);
subplot(2,2,1);imshow(I);
subplot(2,2,2);imshow(J);
subplot(2,2,3);imshow(BW);
subplot(2,2,4);imshow(HSV);
对应结果如下:
图3-4
结果分析:
rgb2gray()将真彩色图像转换成灰度图像或者将彩色色图转换成灰度色图
im2bw()通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像
rgb2hsv()实现RGB颜色空间到HSV颜色空间变换的函数
3.绘制图像灰度直方图的方法,对图像进行均衡化处理。
13.显示B的图像及灰度直方图,对应源代码如下:
I=imread('b747.jpg'),B=rgb2gray(I),
subplot(2,2,1),imshow(B),
subplot(2,2,2),imhist(B)
对应结果如下:
图3-5
用imadjust函数将它的灰度值调整到[0,1]之间,对应源代码如下:
I=imread('b747.jpg'),B=rgb2gray(I),
subplot(1,2,1),C=imadjust(B,[200/255;1],[]),imshow(C),
subplot(1,2,2),imhist(C)
图3-6
Imadjust()调节灰度图像的亮度或彩色图像的颜色矩阵。
14.对B进行直方图均衡化处理,和源图的对比,相关代码如下:
I=imread('b747.jpg'),B=rgb2gray(I),
subplot(1,2,1),imshow(B),
subplot(1,2,2),imhist(B),
[m,n]=size(B);
S1=zeros(1,256);
fori=1:
256
forj=1:
i
S1(i)=GP(j)+S1(i);
end
end
S2=round((S1*256)+0.5);
fori=1:
256
GPeq(i)=sum(GP(find(S2==i)));
end
A=B;
fori=0:
255
A(find(B==i))=S2(i+1);
end
subplot(2,2,3);imshow(A)
title('均衡化后图像')
subplot(2,2,4);imhist(A)
title('均衡化后的直方图')
处理结果如下图所示
图3-7(原B图)
图3-8(对B进行均衡化处理后图)
结果分析:
直方图衡化把原本分布不均的灰度直方图在整个灰度级别内均匀分布。
增加图像的全局对比度,使得亮度可以更好地在直方图上分布。
c.对B进行如图所示的分段线形变换处理
对应源代码如下:
I=imread('b747.jpg');
B=rgb2gray(I);
a=50;
b=200;
t=find(B B(t)=B(t)*1.5; t=find(B>=a&J1 B(t)=(B(t)-a)*0.5; t=find(B>=b&B<256); B(t)=(B(t)-b)*1.5;imshow(B); 对应结果如下: 图3-9 结果分析: 图九是对图片进行了要求中的线性变换处理后的输出结果,和其进行的平衡化处理的结果相比较可以看出此图的细节比较更严重,但是其对比度明显增强整体亮度比较暗,当然这是和所选的线性函数所相关的,不同的线性函数所处理后的结果肯定会不相同。 四.实验结论 本次试验是本人初次接触MATLAB,其中面临了不少困难,通过查阅文档,XX搜索,以及询问同学才将其完成。 特别是第三部分的,多半是通过XX查询,至今仍存在部分疑问。 不是特别理解。 不过在本次学习过程中,本人初步理解到了MATLAB的一些运行命令及内部信息,具体如下: 17.matlab最基本的命令,imread()读取图像;imwrite()写入图像;iminfo()图像信息;imshow()显示图像等等; 18.图片在计算机内部是以矩阵形式存储的,对图片的处理既是对表示图片的相关矩阵的处理,进而到对矩阵内部的数据进行处理。 19.如何去查询rgb2gray,im2bw,rgb2hsv等MATLAB自带的这些函数的使用及观察到使用不同函数对应的效果 20.均直方图衡化把原本分布不均的灰度直方图在整个灰度级别内均匀分布。 增加图像的全局对比度,使得亮度可以更好地在直方图上分布。 21.对图片进行线性变换可以增加其对比度,代码中可以用for循环控制,用线性函数对灰度调整。 五.相关源代码 1. a..1 [I,map]=imread('forest.tif'), Imshow(I,map) a..2 [I,map]=imread('forest.tif'),Imshow(I,map/4) a..3 imfinfo('forest.tif','tif') b I=imread('b747.jpg'), Imshow(B);B=rgb2gray(I) 2. I=imread('tianya.jpg'); J=rgb2gray(I); BW=im2bw(I); HSV=rgb2hsv(I); subplot(2,2,1);imshow(I); subplot(2,2,2);imshow(J); subplot(2,2,3);imshow(BW); subplot(2,2,4);imshow(HSV); 3. a..1 I=imread('b747.jpg'),B=rgb2gray(I), subplot(2,2,1),imshow(B), subplot(2,2,2),imhist(B) a..2 I=imread('b747.jpg'),B=rgb2gray(I), subplot(1,2,1),C=imadjust(B,[200/255;1],[]),imshow(C), subplot(1,2,2),imhist(C) b.1 I=imread('b747.jpg'),B=rgb2gray(I), subplot(2,2,1),imshow(B), subplot(2,2,2),imhist(B) b.2 I=imread('b747.jpg'),B=rgb2gray(I), subplot(1,2,1),imshow(B), subplot(1,2,2),imhist(B), [m,n]=size(B); S1=zeros(1,256); fori=1: 256 forj=1: i S1(i)=GP(j)+S1(i); end end S2=round((S1*256)+0.5); fori=1: 256 GPeq(i)=sum(GP(find(S2==i))); end A=B; fori=0: 255 A(find(B==i))=S2(i+1); end subplot(2,2,3);imshow(A) title('均衡化后图像') subplot(2,2,4);imhist(A) title('均衡化后的直方图') c. I=imread('b747.jpg'); B=rgb2gray(I); a=50; b=200; t=find(B B(t)=B(t)*1.5; t=find(B>=a&J1 B(t)=(B(t)-a)*0.5; t=find(B>=b&B<256); B(t)=(B(t)-b)*1.5;imshow(B);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 基本 操作 灰度 调整