Matlab之图像文件的读取与保存(四)

在MATLAB中,对图像进行操作和处理时,经常需要知道图像文件的文件名、文件格式、图像大小、图像类型、数据类型等信息,可以直接调用MATLAB函数imfinfo( )来读取图像文件的信息。其调用格式如下:

 INFO=imfinfo('filename', 'fimt ')或者INFO=imfinfo('filename. fmt')

该函数是读取文件filename fmt的信息。其中,filename指的是图像文件的“ 文件名”,fmt指的是该文件的“扩展名”,INFO是一个结构数组。不同格式的文件最终得到的INFO所包含的结构成员不同,但基本都包含前9个结构成员。

下表 imfinfo( )返回的结构数组基本内容

结构数组成员名 所代表含义中文件名称
Filename 文件名称
FileMoDate 文件最后修改日期和时间(日-月-年 时:分:秒)
FileSize 文件大小(单位是字节)
Format 文件格式或扩展名(tif、jipg、 png等)
FormatVersion 文件格式版本号
Width 图像文件的宽度,单位为像素
Height 图像文件的高度,单位为像素
BitDepth 图像文件中每一个像素所占位宽(真彩色图像每个像素占24位)
ColorType 图像类型( grayscale-灰度图像,truecolor-RGB图像,mdexed索引图像)

举例:

info = imfinfo('wood.tif');

在MATLAB中, 图像文件的读取最主要的是利用函数imread(),该函数几乎支持MATLAB中所有的图像文件格式。根据所读取图像格式的不同以及图像类型的不同,该函数的调用格式也各不相同。下面将分别从“常见图像格式读取”和“ 特殊图像格式读取”两部分进行介绍:

1.常见图像格式读取

 l=imread(' filename',"fmt')或者('filename.fmt')
[X,map]=imread('filename', 'fmt')或者(filename.fmt)
[...]=imread('filename')
[...]=imread(URL..)

举例:

I = imread('foot.jpg');
I = imread('tree.png');
I = imread('E:\pig.jpg');

imshow(I);

2.特殊图像格式读取

[..] = imread('filename',idx)  
%用于读取第几幅图像,idx表示第几帧,也可表示是一个向量比如15,表示读取前5[..] = imread(...,'frames',idx)
%适用于读取GIF文件格式

[..] = imread(...,'BackgroundColor',BG)
%只适用于PNG文件读取,将透明像素与指定颜色进行合成,BG的形式取决于文件是否包含一个索引或灰度,RGB

[..]=imread('filename',ref)
%只用于HDF文件读取,ref用来确定读取参考编号,但可能图片顺序与参考编号不匹配,故可以用imfinfo来进行图像的处理

[..]=imread(...,'Param1',value1, 'Param2', value2, ...)
 

举例:

[X1,map1] = imread('one.gif',2);
[X2,map2] = imread('one.gif',15);

subplot(211) imshow(X1,map1);
subplot(212) imshow(X2,map2);

3.图像文件的保存
利用函数imwrite( )米实现图像文件的写入操作,即保存,与函 数imread( )的作用相对。其调用格式通常有以下几种:

imwrite(I, 'filename', fmt')
imwrite(X, map, 'filename', 'fmt')
imwrite(..., 'filename')
imwrite(..., 'Param1', Val1, 'Param2, Val2,...)

举例:

load tree
whos  %输出文件部分信息
imwrite(I,map,'tree.png'); %然后在当前目录下检查
发布了86 篇原创文章 · 获赞 197 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44790423/article/details/104721363