第4章MATLAB图像显示Word格式.docx
- 文档编号:6840240
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:19
- 大小:1.95MB
第4章MATLAB图像显示Word格式.docx
《第4章MATLAB图像显示Word格式.docx》由会员分享,可在线阅读,更多相关《第4章MATLAB图像显示Word格式.docx(19页珍藏版)》请在冰点文库上搜索。
显示的颜色数
特点
1位单色
单色
21=2种(黑、白)
每象素对应一个值,取值为0和1
8位灰度
黑白
28=256个(黑到白)
每象素对应一个值,取值为0-255,每值对应一灰度
8位彩色
256色
28=256种彩色
每象素对应一个值,取值为0-255,每值对应一颜色
16位灰度
216=65536个(黑到白)
每象素对应一个值,取值为0-65535,每值对应一灰度
24位彩色
真彩色
28×
28=16M种彩色
每象素对应三个值,分别代表R、G、B,取值为0-255
48位彩色
216×
216=0.25G种色
每象素对应三个值,分别代表R、G、B,取值为0-65535
whos
NameSizeBytesClass
MAP10x00doublearray
MAP20x00doublearray
MAP3256x36144doublearray
MAP40x00doublearray
MAP50x00doublearray
MAP60x00doublearray
X1427x427182329logicalarray
X2427x427182329uint8array
X3427x427182329uint8array
X4427x427364658uint16array
X5427x427x3546987uint8array
X6427x427x31093974uint16array
Grandtotalis1824058elementsusing2558750bytes
2、读取图像信息
可以通过调用imfinfo函数获得与图像文件有关的信息,格式如下:
INFO=imfinfo('
)其中:
返回的INFO是Matlab的一个结构体。
【例】查看图像信息
)
INFO=
Filename:
[1x36char]
FileModDate:
'
23-May-201222:
14:
23'
FileSize:
1107548
Format:
tif'
FormatVersion:
[]
Width:
427
Height:
BitDepth:
48
ColorType:
truecolor'
FormatSignature:
[7373420]
ByteOrder:
little-endian'
NewSubfileType:
0
BitsPerSample:
[161616]
Compression:
Uncompressed'
PhotometricInterpretation:
RGB'
StripOffsets:
13528
SamplesPerPixel:
3
RowsPerStrip:
StripByteCounts:
1093974
XResolution:
2.7115
YResolution:
ResolutionUnit:
Inch'
Colormap:
PlanarConfiguration:
Chunky'
TileWidth:
TileLength:
TileOffsets:
TileByteCounts:
Orientation:
1
FillOrder:
GrayResponseUnit:
0.0100
MaxSampleValue:
[655356553565535]
MinSampleValue:
Thresholding:
NewSubFileType:
Software:
AdobePhotoshop7.0'
DateTime:
2010:
05:
2322:
23'
二、图像显示
Matlab的图像显示函数主要有imshow、image、imview、colorbar和subimage五个。
imview函数打开专门用于图像显示的浏览器。
函数imview与imshow的区别在于用imview函数打开的图像浏览器可以对图像进行一些简单的操作。
image函数与imshow的区别在于,image函数创建的图像由纵横坐标。
1、imshow(I,n)
显示灰度级为n的图像,n缺省为256。
【例】按256灰度级显示
I=imread('
moon.tif'
imshow(I,256)
colorbar
【例】按8灰度级显示
imshow(I,8)
2、imshow(I,[low,high])
以灰度范围[low,high]显示图像,如果不知道灰度范围,可以用imshow(I,[])显示。
【例】按最大灰度范围显示
imshow(I,[])
【例】按指定灰度范围显示
imshow(I,[64,128])
小结:
显示灰度图像的格式为:
imshow(I)I为所显示的灰度图像的数据矩阵
imshow(I,n)n为整数,代表多要显示图像的灰度等级数,默认为256
imshow(I,[low,high])low和high表示数据数组的最小值和最大值;
如果使用空矩阵([]),指定数据范围,imshow将自动进行数据标度。
3、imshow(BW)
显示二值图像。
【例】双精度灰度图像
bw1=zeros(100,100);
bw1(2:
2:
98,2:
98)=1;
imshow(bw1);
whosbw1
bw1100x10080000doublearray
Grandtotalis10000elementsusing80000bytes
【例】8位的灰度图像
bw2=uint8(bw1);
imshow(bw2,[]);
colorbar
whosbw2
bw2100x10010000uint8array
Grandtotalis10000elementsusing10000bytes
【例】二值图像
bw3=bw2~=0;
imshow(bw3);
whosbw3
bw3100x10010000logicalarray
【例】显示二值图像
BW=imread('
circles.tif'
imshow(BW);
【例】取反显示二值图像
imshow(~BW);
clf
imshow(BW,[100;
001]);
小结:
显示二值图像的格式为:
imshow(BW)
imshow(BW,map)用色图map将0和1对应的像素点显示的颜色进行改变。
4、imshow(X,MAP)
显示索引图像,X为数据图像矩阵,MAP为调色板。
【例】显示索引图像
canoe.tif'
imshow(X,MAP);
【例】显示伪彩色图像
imshow(I,jet(256))
显示索引图像的格式为:
imshow(X,map)
image(X):
带有坐标
5、imshow(RGB)
显示真彩色图像。
【例】
rgb=imread('
flowers.tif'
imshow(rgb);
6、显示多帧图像序列
一个多帧的图像文件包含了一幅或多幅图像。
MATLAB支持的多帧图像文件格式是HDF和TIFF。
多帧图像一旦被读入matlab内,多帧图像的图像帧被保存在图像数组的第四维中。
多帧图像可以从磁盘中用imread指令导入或者由matlab创建。
多帧图像有以下几种不同的显示方法:
●用imshow函数显示单帧图像;
●用montage函数显示所有帧图像;
●用immoive函数显把帧图像转换成动画显示。
6.1显示单帧图像
例如:
显示多帧图像数组I的第七帧
命令为:
imshow(I(:
:
7))
clearall
clc
mri=uint8(zeros(128,128,1,27));
%初始化一个27帧的图像数组
forframe=1:
27
[mri(:
frame),map]=imread('
mri.tif'
%把对应的每一帧读入内存中
end
imshow(mri(:
7),map)%显示图像中的第七帧
6.2显示多帧图像
Montage函数用于在同一时间显示多帧图像中的所有帧,所有帧显示在同一图像对象中。
调用格式如下:
●montage(I):
显示灰度图像I共K帧:
mXnX1Xk数组
●Montage(BW):
显示二值图像BW共K帧:
●Montage(X,MAP):
显示索引图像X共K帧:
●Montage(RGB):
显示真彩色图像RGB共K帧:
mXnX3Xk数组
Montage函数把所有帧图像以近似正方形的方式排序。
对于每一帧图像的色图必须相同。
显示多帧图像示例:
montage(mri,map)%显示图像中的所有帧
6.3显示动画
immovie函数可以从一个多帧图像数组中创建matlab动画
mov=immovie(mri,map);
%创建动画帧结构
movie(mov)%播放动画
7、imshowfilename
直接从磁盘显示图像。
【例】直接显示图像
imshow('
I=getimage;
whosI
I537x358192246uint8array
Grandtotalis192246elementsusing192246bytes
8、subimage
多图显示多个调色板的图像。
loadtrees;
[x2,map2]=imread('
forest.tif'
subplot(2,1,1),subimage(X,map);
subplot(2,1,2),subimage(x2,map2);
【例】不用专用函数显示多图
subplot(2,1,1),imshow(x2,map2);
subplot(2,1,2),imshow(X,map);
三、保存图像
1、imwrite函数
imwrite(I,'
文件名'
'
文件格式'
)-保存无调色板的图像
imwrite(X,MAP,'
)-保存有调色板的图像
imwrite(...,'
)-文件名中含格式
参数'
值'
)-指定保存参数
文件格式:
bmp、jpg、pcx、tif等。
【例】将tif图像保存为jpg图像
[x,map]=imread('
imwrite(x,map,'
canoe.jpg'
JPG'
Quality'
75)
四、图像数据格式转换
1、索引图像
假设:
X8-表示8位的索引图像,X16-表示16位的索引图像,X64-表示双精度的索引图像,则有:
X64=double(X8)+1-uint8格式转double格式
X64=double(X16)+1-uint16格式转double格式
X8=uint8(X64-1)-double格式转uint8格式
X16=uint16(X64-1)-double格式转uint16格式
X8=uint8(X16)-uint16格式转uint8格式
X16=uint16(X8)-uint8格式转uint16格式
2、灰度图像
G=mat2gray(A,[Amin,Amax])
AminAmax默认为A的最小和最大值返回是个Double类型的值
I8-表示8位的灰度图像,I16-表示16位的灰度图像,I64-表示双精度的灰度图像,则有:
I64=double(I8/255)-uint8格式转double格式
I64=double(I16/65535)-uint16格式转double格式
I8=uint8(round(I64*255))-double格式转uint8格式
I16=uint16(round(I64*65535))-double格式转uint16格式
I8=uint8(round(I16/257))-uint16格式转uint8格式
I16=uint16(round(I8*257))-uint8格式转uint16格式
3、真彩色图像
RGB8-表示8位的真彩图像,RGB16-表示16位的真彩图像,RGB64-表示双精度的真彩图像,则有:
RGB64=double(RGB8/255)-uint8格式转double格式
RGB64=double(RGB16/65535)-uint16格式转double格式
RGB8=uint8(round(RGB64*255))-double格式转uint8格式
RGB16=uint16(round(RGB64*65535))-double格式转uint16格式
RGB8=uint8(round(RGB16/257))-uint16格式转uint8格式
RGB16=uint16(round(RGB8*257))-uint8格式转uint16格式
4、二值图像
G=im2bw(f,T)T默认为0.5
假设BW8表示8位二值图像,BW64表示双精度二值图像,则有:
BW64=double(BW8)uint8格式转double格式
BW8=uint8(BW64)~=0double格式转uint8格式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 MATLAB图像显示 MATLAB 图像 显示