实验一 数字图像基本处理及灰度调整.docx

上传人:b****7 文档编号:9744145 上传时间:2023-02-06 格式:DOCX 页数:15 大小:724.29KB
下载 相关 举报
实验一 数字图像基本处理及灰度调整.docx_第1页
第1页 / 共15页
实验一 数字图像基本处理及灰度调整.docx_第2页
第2页 / 共15页
实验一 数字图像基本处理及灰度调整.docx_第3页
第3页 / 共15页
实验一 数字图像基本处理及灰度调整.docx_第4页
第4页 / 共15页
实验一 数字图像基本处理及灰度调整.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验一 数字图像基本处理及灰度调整.docx

《实验一 数字图像基本处理及灰度调整.docx》由会员分享,可在线阅读,更多相关《实验一 数字图像基本处理及灰度调整.docx(15页珍藏版)》请在冰豆网上搜索。

实验一 数字图像基本处理及灰度调整.docx

实验一数字图像基本处理及灰度调整

数字图像处理实验报告

 

学生姓名

王真颖

学生学号

L0902150101

指导教师

梁毅雄

专业班级

计算机科学与技术1501

完成日期

2017年10月30日

 

计算机科学与技术系

信息科学与工程学院

 

实验一数字图像基本操作及灰度调整

一.实验目的

1.掌握读、写图像的基本方法;

2.掌握MATLAB语言中图像数据与信息的读取方法;

3.理解图像灰度变换处理在图像增强的作用;

4.掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。

二.实验基本原理

灰度变换

灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。

图像反转

灰度级范围为[0,L-1]的图像反转可由下式获得

对数运算:

有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。

解决的方法是对原图进行灰度压缩,如对数变换:

s=clog(1+r),c为常数,r≥0

幂次变换:

对比拉伸:

在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:

其对应的数学表达式为:

直方图均衡化

灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。

依据定义,在离散形式下,用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)

3.实验内容与要求

copy若干个图形文件如forest.tif和b747.jpg到MATLAB目录下work文件夹中。

1.熟悉MATLAB语言中对图像数据读取,显示等基本函数。

特别需要熟悉下列命令:

熟悉imread()函数,imwrite()函数,size()函数Subplot()函数:

Figure()函数

a.将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread,imfinfo等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。

将这个图像显示出来(用imshow)。

尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。

b将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray()将其转化为灰度图像,记为变量B;

2.图像灰度变换处理在图像增强的作用;

读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果;

3.绘制图像灰度直方图的方法,对图像进行均衡化处理。

请自己编程和调用Matlab函数完成如下实验。

a.显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直方图与原灰度直方图的区别。

b.对B进行直方图均衡化处理,试比较与源图的异同。

c.对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。

四.实验结果与分析

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.图像灰度变换处理在图像增强的作用,对应源代码如下:

figure;

subplot(2,3,1);

I=imread('b747.jpg');

I=im2double(I);imshow(I);title('图像3');

subplot(2,3,5);

r=[0:

0.001:

1];

s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1+0.3*(r-1));

plot(r,s);title('2p,');

subplot(2,3,2);

T1=[I<0.35].*I*0.3+[I<=0.65].*[I>=0.35].*(0.105+2.6333*(I-0.35))+[I>0.65].*(1+0.3*(I-1));

imshow(T1);title('2I,');

subplot(2,3,6);

r=[0:

0.001:

1];

s=[r<=0.4].*[r>=0.2]*0.6+[r>0.4].*r+[r<0.2].*r;

plot(r,s);title('6p,');

subplot(2,3,3);

T6=[I<=0.4].*[I>=0.2]*0.6+[I>0.4].*I+[I<0.2].*I;

imshow(T6);title('6I,');

对应结果如下:

图3-4

结果分析:

rgb2gray()将真彩色图像转换成灰度图像或者将彩色色图转换成灰度色图

im2bw()通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像

rgb2hsv()实现RGB颜色空间到HSV颜色空间变换的函数

3.绘制图像灰度直方图的方法,对图像进行均衡化处理。

显示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()调节灰度图像的亮度或彩色图像的颜色矩阵。

对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

结果分析:

图九是对图片进行了要求中的线性变换处理后的输出结果,与其进行的平衡化处理的结果相比较可以看出此图的细节比较更严重,但是其对比度明显增强整体亮度比较暗,当然这是与所选的线性函数所相关的,不同的线性函数所处理后的结果不同。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1