数字图像处理1.docx

上传人:b****0 文档编号:9316347 上传时间:2023-05-18 格式:DOCX 页数:33 大小:1.17MB
下载 相关 举报
数字图像处理1.docx_第1页
第1页 / 共33页
数字图像处理1.docx_第2页
第2页 / 共33页
数字图像处理1.docx_第3页
第3页 / 共33页
数字图像处理1.docx_第4页
第4页 / 共33页
数字图像处理1.docx_第5页
第5页 / 共33页
数字图像处理1.docx_第6页
第6页 / 共33页
数字图像处理1.docx_第7页
第7页 / 共33页
数字图像处理1.docx_第8页
第8页 / 共33页
数字图像处理1.docx_第9页
第9页 / 共33页
数字图像处理1.docx_第10页
第10页 / 共33页
数字图像处理1.docx_第11页
第11页 / 共33页
数字图像处理1.docx_第12页
第12页 / 共33页
数字图像处理1.docx_第13页
第13页 / 共33页
数字图像处理1.docx_第14页
第14页 / 共33页
数字图像处理1.docx_第15页
第15页 / 共33页
数字图像处理1.docx_第16页
第16页 / 共33页
数字图像处理1.docx_第17页
第17页 / 共33页
数字图像处理1.docx_第18页
第18页 / 共33页
数字图像处理1.docx_第19页
第19页 / 共33页
数字图像处理1.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理1.docx

《数字图像处理1.docx》由会员分享,可在线阅读,更多相关《数字图像处理1.docx(33页珍藏版)》请在冰点文库上搜索。

数字图像处理1.docx

数字图像处理1

 

数字图像处理上机报告

题目:

数字图像处理上机报告(第1次)

学校:

中国地质大学(武汉)

指导老师:

傅华明

姓名:

班级序号:

日期:

2013年9月22日

 

目录

1-0基本要求···········································3

1-1计算图象的统计参数·································8

1-2图象的灰度变换·····································9

1-3空域平滑··········································11

1-4空间锐化··········································15

1-5图像缩放··········································18

1-6实验总结··········································23

 

1-0基本要求:

题目要求:

1.显示一个灰度图象(在p01-p10中选)和彩色图象(在p13-p14中选);

2.观察灰度图象和彩色图象的数据矩阵和文件内容;

3.熟悉灰度图象、二值图象、彩色图象和索引图象之间的变换。

算法设计:

1.导入灰度图像和彩色图像。

2.打开图像数组观察数据矩阵。

3.输入指令读取图像的文件信息。

4.利用Matlab库函数实现灰度图象、二值图象、彩色图象和索引图象之间的变换。

5.读取变换前后的图像并比较观察。

 

程序代码:

p01=imread('P01.tif');%读取灰度图像P01

p14=imread('p14.jpg');%读取彩色图像P14

p02=imread('P04.tif');%读取灰度图像P02,为之后的题目做准备

p04=imread('P04.tif');%读取灰度图像P04,为之后的题目做准备

BW_p01=im2bw(p01,0.5);%将灰度图像转换为二值图像

BW_p14=im2bw(p14,0.5);%将彩色图像转换为二值图像

 

[Q_p14,map_p14]=rgb2ind(p14,32);%将彩色图像转换为32色索引图像

[Q_p014,map_p014]=rgb2ind(p14,64);%将彩色图像转换为64色索引图像

[Q_p01,map_p01]=gray2ind(p01,32);%将灰度图像转换为32色索引图像

[Q_p001,map_p001]=gray2ind(p01,64);%将灰度图像转换为64色索引图像

[Q_BW_p01,map_BW_p01]=gray2ind(BW_p01,32);%将二值图像转换为索引图像

 

BW_Q_p14=im2bw(Q_p14,map_p14);%将索引图像转换为二值图像

R_p14=ind2rgb(Q_p14,map_p14);%将索引图像转换为彩色图像

G_p04=ind2gray(Q_p14,map_p14);%将索引图像转换为灰度图像

GR_p14=rgb2gray(p14);%将彩色图像转换为灰度图像

GR_p01=ind2gray(Q_p01,map_p01);%将索引图像转换为灰度图像

%以下代码作用是显示处理过后的图像

%灰度图像实验

subplot(2,2,1);

imshow(p01);

title('初始图像');

subplot(2,2,2);

imshow(BW_p01);

title('变换为二值图像');

subplot(2,2,3);

imshow(Q_p01,map_p01);

title('变换为32色的索引图像');

subplot(2,2,4);

imshow(Q_p001,map_p001);

title('变换为64色的索引图像');

%彩色图像实验

figure;

subplot(2,2,1);

imshow(p14);

title('初始图像');

subplot(2,2,2);

imshow(BW_p14);

title('变换为二值图像');

subplot(2,2,3);

imshow(Q_p14,map_p14);

title('变换为32色的索引图像');

subplot(2,2,4);

imshow(Q_p014,map_p014);

title('变换为64色的索引图像');

%索引图像实验

figure;

subplot(2,2,1);

imshow(Q_p14,map_p14);

title('初始图像');

subplot(2,2,2);

imshow(BW_Q_p14);

title('变换为二值图像');

subplot(2,2,3);

imshow(R_p14);

title('变换为彩色图像');

subplot(2,2,4);

imshow(G_p04);

title('变换为灰度图像');

%二值图像实验

figure;

subplot(1,2,1);

imshow(BW_p01);

title('初始图像');

subplot(1,2,2);

imshow(Q_BW_p01,map_BW_p01);

title('变换为32色索引图像');

 

%显示图像的文件信息

imfinfo('P01.tif')%读取图像P01的文件信息

 

运行结果:

1.灰度图像的处理

 

2.彩色图像的处理

3.索引图像处理

4.二值图像的处理

5.显示图像的文件信息

输入指令:

imfinfo('P01.tif');

可得图像P01的文件信息如下:

Filename:

'F:

\R2012b\workspace\P01.tif'

FileModDate:

'12-五月-200000:

48:

08'

FileSize:

263838

Format:

'tif'

FormatVersion:

[]

Width:

512

Height:

512

BitDepth:

8

ColorType:

'indexed'

FormatSignature:

[7373420]

ByteOrder:

'little-endian'

NewSubFileType:

0

BitsPerSample:

8

Compression:

'Uncompressed'

PhotometricInterpretation:

'RGBPalette'

StripOffsets:

8

SamplesPerPixel:

1

RowsPerStrip:

512

StripByteCounts:

262144

XResolution:

[]

YResolution:

[]

ResolutionUnit:

'None'

Colormap:

[256x3double]

PlanarConfiguration:

'Chunky'

TileWidth:

[]

TileLength:

[]

TileOffsets:

[]

TileByteCounts:

[]

Orientation:

1

FillOrder:

1

GrayResponseUnit:

0.0100

MaxSampleValue:

255

MinSampleValue:

0

Thresholding:

1

Offset:

262152

 

1-1计算图象的统计参数

题目要求:

对图象p02计算其灰度的熵

算法设计:

 

 

 

程序代码:

function[H]=Calculate_H(x)

%计算图像的熵

%使用方法:

输入一个图像数组(uint型),输出其熵值

%Detailedexplanationgoeshere

[C,R]=size(x);%获得图像数组的尺寸

Level=256;

nk=zeros(Level);%建立数组用于统计各灰度出现次数

H=0;%默认图像熵为0

fori=1:

C%遍历图像各点,依次进行灰度统计并储存于数组

forj=1:

R

ImageLevel=x(i,j)+1;

nk(ImageLevel)=nk(ImageLevel)+1;

end

end

%遍历数组,依次按公式计算各灰度出现的概率及图像的熵

fork=1:

256

P(k)=nk(k)/(C*R);

ifP(k)~=0

H=-P(k)*log2(P(k))+H;

end

end

end

运行结果:

根据上文所编写的代码,在Matlab命令窗口执行如下代码可计算P02的熵值:

H=Calculate_H(p02)

结果如下图所示:

 

1-2图象的灰度变换

题目要求:

对图象p04实施灰度平方变换

算法设计:

1.导入图像。

2.建立变换后图像存储空间。

3.遍历图像各点,依公式进行平方变换。

 

 

 

程序代码:

function[y]=GrayLevle2(x,Level)

%灰度平方变换

%使用方法:

输入一个图像数组(uint型)和灰度等级,输出其灰度平方变换后的图像数组

[C,R]=size(x);%获得图像数组的尺寸

y=zeros(C,R);%建立变换后图像存储空

y=double(x);%将输入数组转换为double型,以免平方后溢出

%并可提供精度

Level=256;%默认灰度等级为256

%遍历图像各点,依次进行依公式进行平方变换

fori=1:

C

forj=1:

R

y(i,j)=y(i,j)*y(i,j)/(Level-1);

end

end

y=uint8(y);%将输出数组类型还原

subplot(1,2,1);%显示变换前后的灰度直方图

imhist(uint8(x));

title('变换前的直方图');

subplot(1,2,2);

imhist(y);

title('变换后的直方图');

end

运行结果:

根据上文所编写的代码,在Matlab命令窗口执行如下代码可获得P04的灰度平方变换后的图像:

subplot(1,2,1);

imshow(p04);

title('初始图像');

G2_p04=GrayLevle2(p04,256);

subplot(1,2,2);

imshow(G2_p04);

title('平方变换后的图像');

效果如下图所示:

1-3空域平滑

题目要求:

对图象p04施加高斯噪声和椒盐噪声并实施最大均匀性平滑法(4.2.5节)

算法设计:

一、噪声施加算法:

1.导入图像。

2.使用matlab自带rand函数产生0~1的均匀噪声。

3.根据图像灰度范围和噪声系数r确定噪声具体数值。

4.施加噪声。

5.输出结果。

二、最大均匀性平滑算法

1.导入图像。

2.建立变换后图像存储空间。

2.遍历图像(不包括边框两行和边框两列)。

3.分别求出5个3*3窗口的梯度。

4.比较梯度,确定具体数值。

5.根据梯度最小值确定各点灰度值。

6.输出结果。

 

 

 

 

三、方差法评价空域平滑的效果

1.导入变换前后的图像数组

2.遍历个像素点计算变换前后图像灰度方差

3.输出方差值

程序代码:

1.Soble算子函数:

function[y]=Soble(p,i,j)

%Soble算子求梯度

%使用方法:

输入一个图像数组(double型)和一个坐标值,

%输出相应坐标点5个3*3窗口的梯度

dx=p(i+1,j-1)+2*p(i+1,j)+p(i+1,j+1)-p(i-1,j-1)-2*p(i-1,j)-p(i-1,j+1);

dy=p(i-1,j+1)+2*p(i,j+1)+p(i+1,j+1)-p(i-1,j-1)-2*p(i,j-1)-p(i+1,j-1);

y=sqrt(dx*dx+dy*dy);

end

2.求数组最小值函数:

function[y]=F_min(x)

%求数组最小元素

%输入一个一维数组(类型不限),输出数组最小元素

Length=size(x);

y=x

(1);

fori=1:

Length

ify>x(i)

y=x(i);

end

end

end

3.最大均匀性平滑法函数

function[y]=Function_1_34(x)

%最大均匀性平滑法

%输入一个图像数组(uint型),并对其做最大均匀性平滑处理

%并输出处理后的图像数组

[C,R]=size(x);%获得输出数组的尺寸

y=zeros(C,R);%建立建立变换后图像存储空间

y=double(x);%将输入将输入数组转换为double型,以免处理过程数据溢出

Gr=zeros(5);%建立存储梯度值的空间

%遍历图像各点,依次分别求出5个3*3窗口的梯度

fori=3:

(C-2)

forj=3:

(R-2)

Gr

(1)=Soble(y,i,j);

Gr

(2)=Soble(y,i-1,j-1);

Gr(3)=Soble(y,i+1,j-1);

Gr(4)=Soble(y,i-1,j+1);

Gr(5)=Soble(y,i+1,j+1);

Min=F_min(Gr);%比较梯度,求出梯度最小值

switchMin%求梯度最小窗口的平均灰度,并作为该点灰度值

caseGr

(1)

temp=y(i-1,j-1)+y(i,j-1)+y(i+1,j-1)+y(i-1,j)+y(i,j)...

+y(i+1,j)+y(i-1,j+1)+y(i,j+1)+y(i+1,j+1);

y(i,j)=temp/9;

caseGr

(2)

temp=y(i-2,j-2)+y(i-1,j-2)+y(i,j-2)+y(i-2,j-1)...

+y(i-1,j-1)+y(i,j-1)+y(i-2,j)+y(i-1,j)+y(i,j);

y(i,j)=temp/9;

caseGr(3)

temp=y(i,j-2)+y(i+1,j-2)+y(i+2,j-2)+y(i,j-1)...

+y(i+1,j-1)+y(i+2,j-1)+y(i,j)+y(i+1,j)+y(i+2,j);

y(i,j)=temp/9;

caseGr(4)

temp=y(i-2,j)+y(i-1,j)+y(i,j)+y(i-2,j+1)+y(i-1,j+1)...

+y(i,j+1)+y(i-2,j+2)+y(i-1,j+2)+y(i,j+2);

y(i,j)=temp/9;

otherwise

temp=y(i,j)+y(i+1,j)+y(i+2,j)+y(i,j+1)+y(i+1,j+1)...

+y(i+2,j+1)+y(i,j+2)+y(i+1,j+2)+y(i+2,j+2);

y(i,j)=temp/9;

end

end

end

y=uint8(y);%将处理后的数组转换为灰度图像数组类型

end

4.计算两幅图像的灰度方差

function[value]=Fangchapingjia(x,y)

%方差评价法评估滤波效果

%导入变换前后的图像数组,输出方差值

[C,R]=size(x);%获得输出数组的尺寸

x=double(x);%将输入数组转换为double型,以免处理过程数据溢出

y=double(y);

s=0;

fori=1:

C%遍历个像素点计算变换前后图像灰度方差

forj=1:

R

s=s+(y(i,j)-x(i,j))*(y(i,j)-x(i,j));

end

end

value=s/(C*R);

end

 

运行结果:

根据上文所编写的代码,在Matlab命令窗口执行如下代码,可对图像P04施加高斯噪声和椒盐噪声,并对其进行最大均匀性平滑法处理,并观察效果:

注:

该算法调用了Soble算子计算梯度,而每次调用Soble算子必须把整个图像数组全部导入一遍,故而程序耗时较大,算法改进办法为:

放弃调用Soble算子,直接在函数中进行实时计算,这样一来,程序代码看起来比较杂乱,但可以有效缩短程序执行时间。

GS_p04=imnoise(p04,'gaussian',0.02);%加入高斯噪声

JY_p04=imnoise(p04,'salt&pepper',0.02);%加入椒盐噪声

y1=Function_1_34(GS_p04);

y2=Function_1_34(JY_p04);

subplot(2,2,1);

imshow(GS_p04);

title('加入高斯噪声的图像');

subplot(2,2,2);

imshow(JY_p04);

title('加入椒盐噪声的图像');

subplot(2,2,3);

imshow(y1);

title('处理后的高斯噪声图像');

subplot(2,2,4);

imshow(y2);

title('处理后的椒盐噪声图像');

div1=Fangchapingjia(p04,y1);%评估高斯噪声的滤波效果

div2=Fangchapingjia(p04,y2);%评估椒盐噪声的滤波效果

效果如下图所示:

由计算方差结果和图像实际效果可看出,该算法对高斯噪声的滤波效果更好

注:

上图为计算两幅图像变换前后的灰度方差,用以评估该算法对不同噪声的滤波效果

1-4空间锐化

题目要求:

根据Sobel算子,按照公式4.3.10和公式4.3.11对图象p04实施空间锐化。

算法设计:

1.导入图像。

2.遍历图像(不包括边框行和边框列)。

3.根据Sobel算子计算各点梯度。

4.比较梯度和门限值,确定该点数值。

5.输出结果。

 

 

 

 

程序代码:

注:

该函数用到的Sobel算子函数已在上文写出,在此不赘述。

function[y1,y2]=Function_1_44(x,t1,t2)

%根据Sobel算子,按照公式4.3.10和公式4.3.11对图象实施空间锐化

%使用说明:

输入一个图像数组(uint型),以及两个梯度阀值

%输出两个处理过的图像数组

[C,R]=size(x);%获得输出数组的尺寸

y1=zeros(C,R);%建立建立变换后图像存储空间

y2=zeros(C,R);%建立建立变换后图像存储空间

x=double(x);%将输入数组转换为double型,以免处理过程数据溢出

%遍历图像各点,依次分别求出各像素点的梯度

fori=2:

(C-1)

forj=2:

(R-1)

gra=Soble(x,i,j);

ifgra>=t1%根据阀值t1确定该点数值

y1(i,j)=gra;

else

y1(i,j)=50;

end

ifgra>=t2%根据阀值t2确定该点数值

y2(i,j)=100;

else

y1(i,j)=50;

end

end

end

y1=uint8(y1);%将处理后的数组转换为灰度图像数组类型

y2=uint8(y2);

end

 

运行结果:

根据上文所编写的代码,在Matlab命令窗口执行如下代码,可对图像P04的个像素点根据Soble算子求梯度,并根据设定的阀值做处理,并观察效果:

[y1,y2]=Function_1_44(p04,4,18);%输入要处理的图像,并设定梯度阀值

subplot(2,2,1);

imshow(p04);

title('原图像');

subplot(2,2,2);

imshow(y1);

title('按照公式4.3.10锐化后的图像');

subplot(2,2,3);

imshow(y2);

title('按照公式4.3.11锐化后的图像');

效果如下图所示:

由下图可看出,采用公式4.3.10锐化后的图像效果更佳,锐化后的图像边缘更加清晰,噪声较小。

1-5图像缩放:

题目要求:

1.水平和垂直两方向等比例缩放

2.水平和垂直两方向不等比例缩放

算法设计:

一、图像缩小

1.导入图像。

2.建立缩小后图像的数组

3.遍历图像,根据图像缩小系数对原图数组等间距取出灰度值并依此赋予新建缩小图数组。

4.输出结果。

二、图像放大

1.导入图像。

2.建立放大后图像的数组。

3.遍历图像,根据图像放大系数从原图数组取出灰度值并依此等间距赋予新建放大图数组。

4.放大图像数组的空缺部分用距离它最近点的原图像灰度值填充。

5.输出结果。

程序代码:

1.图像缩小

function[y]=Reduce(x,a,b,flag)

%图像缩小尺寸不变

%输入图像数组,纵、横向缩小系数,输出缩小后的图像

[C,R]=size(x);%获得输出数组的尺寸

ifflag==0

y=zeros(C,R);%flag=0缩小后图像尺寸不变

else

y=zeros(round(C*a),round(R*b));%flag=1缩小后图像尺寸变化

end

x=double(x);%将输入数组转换为double型,

%以免处理过程数据溢出

%遍历图像各点,依次进行图像缩小处理

fori=1:

C%对原图数组等间距取出灰度值并依此赋予新建缩小图数组

forj=1:

R

m=round(j*b+1);%按四舍五入发等间距取点

n=round(i*a+1);

if(m>R||n>C)

m=R;n=C;

end

y(n,m)=x(i,j);

end

end

y=uint8(y);%将处理后的数组转换为灰度图像数组类型

2.图像放大

function[y]=Amplify(x,a,b,flag)

%图像放大

%输

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2