初学MATLAB之图像文件的读写

在MATLAB 中,用户想要对一幅图像或者图像文件进行操作和处理,最首要的一个步骤就是对需要处理的图像或者文件进行”读取”,然后再进行具体的操作和处理,最后可以将处理后的图像进行保存。

文件信息读取

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

info=imfinfo(‘filename’, ‘fmt’)或者info=imfinfo(‘filename.fmt’)

其中,filename 指的是图像文件的”文件名”,fmt 指的是该文件的”扩展名”,info是一个结构数组。不同格式的文件最终得到的INFO 所包含的结构成员不同,但基本都包含前9 个结构成员,具体如下所示:

初学MATLAB之图像文件的读写

例(以lena为例):

info=imfinfo(‘lena.jpg’)

图像文件的读取

在MATLAB 中,图像文件的读取最主要的是利用函数imread ( ),该函数几乎支持MATLAB 中所有的图像文件格式。根据所读取图像格式的不同以及图像类型的不同,该函数的调用格式也各不相同。

常见图像格式读取

MATLAB中常常利用函数imread()来完成图形图像文件的读取,其调用格式主要有以下几种方式:

  • I=imread(lena’,’jpg) 或者(lena.jpg’):该函数是用于读取字符串lena 指定的真彩色图像文件。其中lena是文件名,jpg是文件扩展名或文件格式。如果该文件不在当前路径下,或者在MATLAB路径下,那么需要写出完整的路径。
  • [X,map]=imread(‘filename’, ‘fimt)或者(filename.fmt’):该函数是读取字符串filename指定的索引图像文件。其中X用于存储索引图像数据,即对应颜色映射表的”映射序号值”,map用于存储与该索引图像相关的颜色映射表。
  • [..]=imread(‘filename’):该函数是在执行图像读取操作时,首先需要从图像文件filename的内容推断其图像类型,即imread()参数中没有给出图像文件的类型fmt,而是需要推断得到。而该语句左边”[…]”表示根据待读取的图像数据是真实像素值,还是索引图像的相应颜色映射表的序号值,而分别采用格式1和格式2中的不同形式。
  • […]=imread(URL,…): 该函数是读取Internet URL的图像文件,URL 要求其必须
    包含协议类型,例如http://。

特殊图像格式读取

函数imread()的调用格式除了前面介绍的比较常用的4种方式外,还有针对某些特殊
类型的图像读取格式,具体如下:

  • […]=imread( filename’,idx):该函数是只针对包含多幅图像的文件,例如ico、 tif、cur、gif 等格式的文件。该格式实现的功能是读取相应文件中的第几幅图像,或者多幅图像。其中idx是- -个整 数或者整型向量。
  • […]=imread(…,’frames’,dx): 该函数是只适用于读取GIF 格式图像文件。它与上一功能基本上相同,两者的区别是前者的idx的取值可以是all,在这种情况下,该格式将读取图像文件中的所有帧图像,并且按照在文件中的存储顺序返回。
  • […]=imread(…’1′,BG);:该函数是只适用于PNG文件的读取,其功能是将透明的像素与指定的颜色进行合成。其中BG的形式取决于文件是否包含一个索引、强度(灰度)或RGB图像。如果BG为none,将不进行合成。如果输入图像是索引图像,BG将是取值范围为[1,P]内的整数,其中P是颜色映射表的长度;如果输入图像是灰度图像,BG应该是在[0,1]的范围内的整数;如果输入图像是RGB图像,BG应该是一个三元素的向量,每一个元素的取值在[0,1]范围内。
  • […]=imread(‘lena’,ref):该函数是只用于HDF文件的读取,只读取HDF文件中多幅图像中的一幅,其中ref是一个整数,用来确定要读取图像的参考编号。
  • […]=imread(…, ‘Paraml’, valuel, ‘Param2’, value2, …):该函数是使用参数/值对控制读取操作。

图像文件的保存

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

  • imwrite (I, ‘filename’, ‘fmt ‘):该函数是把图像数据I 保存到由字符串”filename “指定的文件中,存储的文件格式由fmt 指定。
  • imwrite (X,map , ‘filename’, ‘fmt ‘):该函数是用于保存索引色图像,其中X 表示索引色图像数据矩阵,map 表示与其关联的颜色映射表,filename 为保存的文件名,fmt 为文件的保存格式。
  • imwrite (…, ‘filename’):该函数是将图像保存到文件中时,从filename 的扩展名中推断图像的文件格式,该扩展名要求必须是MATLAB 所支持的类型。函数imwrite ()中在filename 之前的参数”…”与前面提到的格式是相同的调用方式。
  • imwrite (…, ‘Param1’,Val1, ‘Param2’,Val2,…):该函数是用于在保存HDF 、JPEG 、PBM 、PGM 、PPM 、PNG 、RAS 、GIF 和TIFF 等类型文件时指定某些参数值。

Original: https://blog.csdn.net/m0_69003748/article/details/125957366
Author: 木子-1
Title: 初学MATLAB之图像文件的读写

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641949/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球