医学图像处理实验报告要Word文档下载推荐.docx
《医学图像处理实验报告要Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《医学图像处理实验报告要Word文档下载推荐.docx(57页珍藏版)》请在冰豆网上搜索。
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图像,其语法可以为:
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】
int16
有符号16比特整数,范围【-32768,32767】
int32
有符号32比特整数,范围【-2147483648,2147483647】
single
单精度浮点数,范围【-1038,1038】
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
logical,uint8,uint16,double
im2uint16
mat2gray
double,范围【0,1】
im2double
im2bw
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;
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'
'
25)
subplot(3,2,3),imshow('
bubbles15.jpg'
15)
subplot(3,2,4),imshow('
bubbles5.jpg'
5)
subplot(3,2,5),imshow('
bubbles0.jpg'
0)
subplot(3,2,6),imshow('
观察哪副图像压缩最大后没有“伪轮廓”。
此时键入命令:
imfinfobubbles25.jpg
会得到如下信息:
ans=
Filename:
'
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