医学图像处理实验报告要.docx

上传人:b****3 文档编号:1493529 上传时间:2022-10-22 格式:DOCX 页数:57 大小:966.50KB
下载 相关 举报
医学图像处理实验报告要.docx_第1页
第1页 / 共57页
医学图像处理实验报告要.docx_第2页
第2页 / 共57页
医学图像处理实验报告要.docx_第3页
第3页 / 共57页
医学图像处理实验报告要.docx_第4页
第4页 / 共57页
医学图像处理实验报告要.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

医学图像处理实验报告要.docx

《医学图像处理实验报告要.docx》由会员分享,可在线阅读,更多相关《医学图像处理实验报告要.docx(57页珍藏版)》请在冰豆网上搜索。

医学图像处理实验报告要.docx

医学图像处理实验报告要

医学图像处理实验报告

LabReportofMedicalImageProcessing

 

系部:

学号:

姓名:

指导教师:

实验1MATLAB基本操作及函数用法

1.1实验原理介绍

1.1.1读取函数

函数imread可以将图像读入MATLAB环境,语法为:

imread('filename')

其中filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。

例如命令行

>>f=imread('chestxray.jpg');

将JPEG图像chestxray读入图像数组f中。

函数size可以给出一副图像的行数和列数:

>>size(f)

ans-

10241024

函数whos可以显示一个数组的基本附加信息。

例如,语句

>>whosf

whos行结尾处的分号对结果没有影响。

1.1.2显示图像

一般使用函数imshow显示,其基本语法为:

imshow(f,G)

其中,f是一个图像数组,G是显示该图像的灰度级数。

若G省略,默认为256。

语法:

imshow{f,[lowhigh]}

会将所有小于或等于low的值都显示为黑,所有大于或等于high的值都显示为白色。

介于low和high之间的值将以默认的级数显示为中等亮度值。

当用imshow显示另外一幅图像时,MATLAB会在屏幕上用新图像替换旧图像,为保持第一幅图像并同时显示第二副图像,可以使用如下figure函数:

>>figure,imshow(g)

要了解图像文件的其他详细信息,可以使用imfinfo函数,其语法结构为:

imfinfofilename

其中,filename是存储在磁盘中的图像全名。

1.1.3保存图像

使用函数imwrite可以将图像写在磁盘上,该函数语法为:

imwrite(f,‘filename’)

下面的命令可以把图像f写为TIFF格式,在默认情况下使用语句

>>imwrite(f,'patient10_run1','tif')

>>imwrite(f,'patient10_run1.tif')

会将文件保存到当前的工作目录中。

另外,如果是JPEG图像,其语法可以为:

imwrite(f,'filename.jpg','quality',q)

其中q是一个在0到100之间的整数(q越小,图像退化越严重)。

函数imwrite另一种常用但只用于tif图像的语法为:

imwrite(g,‘filename.tif’,‘compression’,‘parameter’,…‘resolution’,[colresrowres])

其中,‘parameter’有三种情况:

为‘none’表示无压缩,‘packbits’表示比特压缩包压缩(非二值图像默认参数),‘ccitt’表示ccitt压缩(二值图像默认参数)。

colres为列分辨率。

1.1.4数据类型

见下表:

表格01数据类型。

前8项数值类,第9项字符类,第10项逻辑类。

名称

描述

double

双精度浮点数,范围【-10308,10308】(8比特每像素)

unit8

无符号8比特整数,范围【0,255】(1比特每像素)

unit16

无符号16比特整数,范围【0,65535】(2比特每像素)

unit32

无符号32比特整数,范围【0,4294967295】(4比特每像素)

int8

有符号8比特整数,范围【-128,127】(1比特每像素)

int16

有符号16比特整数,范围【-32768,32767】(2比特每像素)

int32

有符号32比特整数,范围【-2147483648,2147483647】(4比特每像素)

single

单精度浮点数,范围【-1038,1038】(4比特每像素)

char

字符(2比特每像素)

logical

值为0或者1(1比特每像素)

1.1.5图像类型

主要分为4种:

●亮度图像(Intensityimage)

●二值图像(Binaryimage)

●索引图像(Indexedimage)

●RGB图像(RGBimage)

注意:

一副图像的特征是由数据类和图像类这两者来表征的。

例如,“unit8亮度图像”表示一副像素都是unit8数据类的亮度图像。

1.1.6数据类与图像类型之间的转换

(1)数据类间的转换

通用语法为:

B=data_class_name(A)

其中,data_class_name可以为表1第一列中的任意一项。

(2)图像类和数据类型间的转换

见下表:

表格02IPT中用于进行图像类和数据类转换的函数

名称

将输入转换为

有效的图像数据类

im2unint8

unit8

logical,uint8,uint16,double

im2uint16

unit16

logical,uint8,uint16,double

mat2gray

double,范围【0,1】

double

im2double

double

logical,uint8,uint16,double

im2bw

logical

uint8,uint16,double

要把一个double类的任意数组转换成取值范围为[0,1]的归一化double类数组,可以通过函数mat2gray完成,其基本语法为:

g=mat2gray(A,[Amin,Amax])

其中,图像g的取值范围在0(黑色)到1(白色)之间。

转换时,小于Amin的值在g中变为0,大于Amax的值变为1。

1.1.7数组索引

在MATLAB中,v=[13579]代表一维行向量,使用转置运算符(.’)可以把行向量转为列向量。

要存取元素数据块,可以使用冒号(:

)。

例如,下列语句代表存取第三个到最后一个元素:

>>v(3:

end)

ans=

579

注意:

符号1:

2:

end表示索引从1开始计数,步长为2,直到结束。

步长可以为负。

例如,求一个矩阵所有元素之和:

>>s=sum(A(:

))

1.1.8运算符

MATLAB运算符一般分为以下三种主要类别:

●执行数值计算的算术运算符

●在数量上比较操作数的关系运算符

●执行函数AND、OR和NOT的逻辑运算符

常用的运算符和算术函数如下面几个表所示:

表格03数组和矩阵运算符

运算符

名称

MATLAB函数

注释和示例

+

数组和矩阵加

plus(A,B)

a+b,A+B或a+A

-

数组和矩阵减

minus(A,B)

a-b,A-B或a-A

.*

数组乘

times(A,B)

C=A.*B,C(I,J)=A(I,J)*B(I*J)

*

矩阵乘

mtimes(A,B)

标准矩阵乘

./

数组右除

rdivide(A,B)

C=A./B

.\

数组左除

ldivide(A,B)

C=A.\B

/

矩阵右除

mrdivide(A,B)

\

矩阵左除

mldivide(A,B)

.^

数组求幂

power(A,B)

C=A.^B,有C(I,J)=A(I,J)^B(I,J)

^

矩阵求幂

mpower(A,B)

.|

向量和矩阵转置

transpose(A)

标准的向量和矩阵转置

|

向量和矩阵复共轭转置

ctanspose(A)

标准的向量和矩阵共轭转置

+

一元加

uplus(A)

+A=0+A

-

一元减

uminus(A)

-A=0-A

:

冒号

表格04IPT支持的图像算术函数

函数

描述

imadd

两幅图像相加或把常数加到图像

imsubtract

两幅图像相减或从图像中减去常数

immultiply

两幅图像相乘,在相应的像素对间进行;或图像乘以一个常数

imdivide

两幅图像相除,在相应的像素对间进行;或图像除以一个常数

imadsdiff

计算两幅图像间的绝对差

imcomplement

对图像求补

imlicomb

计算两幅或多幅的线性组合

表格05关系运算符

运算符

名称

<

小于

<=

小于等于

>

大于

>=

大于等于

==

等于

~=

不等于

表格06逻辑运算符

运算符

名称

&

AND(与)

|

OR(或)

~

NOT(非)

表格07逻辑函数

函数

注释

xor

若两个操作数逻辑上不同,则函数xor返回1;否则,返回0

all

若一个向量中的所有元素都非零,返回1;否则,返回0

any

若一个向量中的任何元素都非零,返回1;否则,返回0。

该函数在矩阵中按列操作

1.2实验内容

1.2.1在“素材”文件夹下,读入“Fig2.19(a).jpg”并且提取该图像的基本信息,写出实验步骤和实验结果。

图1图像的读取与显示

>>f=imshow('Fig2.19(a).jpg');

>>whosf

NameSizeBytesClassAttributes

f1x18double

1.2.2读取图像“Fig1.14(d).jpg”,使用函数imwrite和subplot函数分别显示质量参数q=50,25,5,0的结果如图所示。

写出实验步骤。

>>f=imread('Fig1.14(d).jpg');

>>subplot(3,2,1),imshow(f);

>>subplot(3,2,2),imshow('bubbles50.jpg');

>>imwrite(f,'bubbles25.jpg','quality',25)

>>subplot(3,2,3),imshow('bubbles25.jpg');

>>imwrite(f,'bubbles15.jpg','quality',15)

>>subplot(3,2,4),imshow('bubbles15.jpg');

>>imwrite(f,'bubbles5.jpg','quality',5)

>>subplot(3,2,5),imshow('bubbles5.jpg');

>>imwrite(f,'bubbles0.jpg','quality',0)

>>subplot(3,2,6),imshow('bubbles0.jpg');

观察哪副图像压缩最大后没有“伪轮廓”。

此时键入命令:

>>imfinfobubbles25.jpg

会得到如下信息:

ans=

Filename:

'bubbles25.jpg'

FileModDate:

'15-十月-201215:

49:

44'

FileSize:

13875

Format:

'jpg'

FormatVersion:

''

Width:

714

Height:

682

BitDepth:

8

ColorType:

'grayscale'

FormatSignature:

''

NumberOfSamples:

1

CodingMethod:

'Huffman'

CodingProcess:

'Sequential'

Comment:

{}

其中,使用width乘以height乘以BitDepth再除以8,得到:

714*682*8/8=486948字节。

把这个结果除以FileSize就可以的得到压缩比:

486948/138

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

当前位置:首页 > 表格模板 > 合同协议

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

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