32.1加载和保存图像

大多数图像处理任务的第一步是将图像加载到Octave中,这是用imread作用这个imwrite函数是将图像写入磁盘的相应函数。

总之,大多数图像处理代码都将遵循此代码的结构体

I=imread(“my_input_image.img”);J=process_my_image(I);imwrite(J,“my_output_image.img”);
 
: [img, map, alpha] = imread (filename)
: […] = imread (url)
: […] = imread (…, ext)
: […] = imread (…, idx)
: […] = imread (…, param1, value1, …)

读取各种文件格式的图像。

从文件中以矩阵形式读取图像filename或来自在线资源url。如果两者都没有给出,但是提取已指定,正在查找扩展名为的文件提取.

输出的大小和类别取决于图像的格式。彩色图像以MxNx3矩阵的形式返回。灰度和黑白图像的大小为MxN。多页图像将具有额外的第4个维度。

图像的位深度决定了输出的类别:uint8, uint16single对于灰度和颜色,以及logical用于黑白。请注意,索引图像总是返回颜色map的索引,而与是否地图是指定的输出。要获得实际的RGB图像,请使用ind2rgb当正在读取一个以上的索引图像时,地图是从第一个中获得的。在极少数情况下,这可能是不正确的,并且imfinfo可以用来获得每个图像的颜色图。

有关表示图像的更多信息,详见Octave手册。详见表示图像)

某些文件格式,如TIFF和GIF,能够在一个文件中存储多个图像。idx可以是指定要读取的图像索引的标量或向量。默认情况下,Octave将只读取第一页。

根据文件格式的不同,可以使用配置图像的读取param, value对。支持以下参数:

框架指数

这是另一种指定方法idx。以这种方式指定itin时,其值也可以是字符串全部的.

信息

此参数存在于MATLAB兼容性,但没有效果。从单个文件读取多个图像时的最大性能,请使用指数参数

PixelRegion

控制读取的图像区域。该值必须是一个包含两个3个元素的数组的元胞数组{[], [cols]}数组中的元素是要读取的开始像素、增量像素和结束像素。如果忽略增量值,则默认为1。例如,以下内容都是等效的:

imread(文件名,“PixelRegion”,{[200 600],[300 700]});imread(文件名,“PixelRegion”,{[200 1 600],[300 1 700]});imread(文件名)(200:600、300:700);

详见: imwrite, imfinfo, im格式.

 
: imwrite (img, filename)
: imwrite (img, filename, ext)
: imwrite (img, map, filename)
: imwrite (…, param1, val1, …)

以各种文件格式写入图像。

图像img可以是二进制、灰度、RGB或多维图像。的大小和级别img应该与阅读时预期的内容相同imread:第3和第4维度分别用于颜色空间和多个页面。如果是索引图像,颜色图地图还必须指定。

如果提取的文件扩展名filename用于确定格式。实际支持的格式是在Octave的构建过程中所做的依赖参数。使用im格式以检查对不同图像格式的支持。

根据文件格式的不同,可以使用配置图像的写入param, val对。支持以下参数:

阿尔法

图像的Alpha(透明度)通道。这必须是一个具有相同类、行数和列数的矩阵img在第二页图像的情况下,第四维度的大小也必须匹配,并且第三维度必须是单体。默认情况下,图像将完全不透明。

压缩

压缩以使用一个图像。可以是以下其中之一:“none”(默认值)、“bzip”、“fax3”、“fax4”、《jpeg》、“lzw”、“rle”或“deflate”。请注意,并非所有压缩类型都可用于默认为Magick库的所有图像格式。

延迟时间

对于接受动画的格式(如GIF),控制帧移动到下一帧之前的显示时间。该值必须是标量(将应用于中的所有帧img),或长度等于中帧数的向量感应电动机。该值以秒为单位,必须介于0和655.35之间,默认值为0.5。

处置方法

对于接受动画的格式(如GIF),控制在绘制下一帧之前一帧的内容。其值可以是以下字符串之一:“doNotSpecify”(默认值);“leaveInPlace”;“restoreBG”;和“restorePrevious”,或长度等于中帧数的字符串的元胞数组img.

循环计数

对于接受动画的格式(如GIF),控制序列重复的次数。值Inf表示无限循环(默认值),值0或1表示序列只播放一次(循环0次),而值2或以上表示循环该次数(循环2次表示完整序列播放3次)。当文件写入结束时只有一个图像时,此参数将被忽略。

质量

设置压缩质量。该值应为0和100之间的整数,较大的值表示较高的视觉质量和较低的压缩。默认值为75。

写方式

某些文件格式,如TIFF和GIF,能够在一个文件中存储多个图像。此参数指定如果img应附加到文件(如果存在),或者是否应为其创建新文件(可能覆盖现有文件)。值应该是字符串覆盖(默认),或追add.

尽管有这个参数,但写多页图像最有效的方法是通过4维imgimwrite,使用时可以预期的相同矩阵imread带有参数指数设置为全部的.

详见: imread, imfinfo, im格式.

 
: val = IMAGE_PATH ()
: old_val = IMAGE_PATH (new_val)
: old_val = IMAGE_PATH (new_val, "local")

查询或设置内部变量,该变量指定要在其中搜索图像文件的目录的冒号分隔列表。

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。

详见: EXEC_PATH, Octave主机, OCTAVE_EXEC_HOME.

可以获得磁盘上图像文件的信息,而无需实际将其读入Octave。这是使用imfinfo函数,它提供对存储在图像文件头中的许多参数的读取访问。

 
: info = imfinfo (filename)
: info = imfinfo (url)
: info = imfinfo (…, ext)

从文件中读取图像信息。

imfinfo返回一个结构体,该结构体包含有关存储在文件中的图像的信息filename。如果没有文件filename提取已指定,它将查找名为的文件filename和扩展提取,即一个名为filename.提取.

输出结构体信息包含以下字段:

文件名

图像文件的全名。

文件修改日期

上次修改文件的日期。

文档大小

磁盘上映像的字节数

format

图像格式(例如。,jpeg).

身高

图像高度(以像素为单位)。

宽度

图像宽度(以像素为单位)。

位深度

每个通道每个像素的位数。

颜色类型

图像类型。值为灰度, 索引,真彩色, CMYK未定义.

水平分辨率

图像的X分辨率。

Y解决方案

图像的Y分辨率。

解析度

图像分辨率的单位。值为英寸,厘米未定义.

延迟时间

以1/100秒为单位的时间(0到65535),在显示动画序列中的下一个图像之前必须过期。

循环计数

循环动画的迭代次数。

ByteOrder

支持它的格式的Endian参数。值为小endian, big endian未定义.

Gamma

图像的Gamma级别。从于显示监视器的差异,显示在两个不同工作站上的相同颜色的图像可能看起来不同。

质量

JPEG/MIFF/PNG压缩级别。值是一个范围为[0 100]的整数。

处置方法

仅对GIF图像有效,控制创建GIF动画时连续帧的渲染方式(前一帧的处理方式)。值扫描为doNotSpecify, 离开原地, restoreBGrestorePrevious。对于非GIF文件,值为空字符串。

色度

Value是一个1x8矩阵,其中白色、红色、绿色和蓝色点的x、y色度值按顺序排列。

议论

图片注释。

压缩

压缩类型。值可以是没有一个, bzip,传真3, 传真4, jpeg, lzw,rle, 瘪下来, lzma, jpeg2000,jbig2, jbig2未定义.

色图

每个图像的颜色map。

方向

图像相对于行和列的方向。Value是TIFF 6规范中定义的介于1和8之间的整数,对于MATLAB兼容性。

软件

用于生成图像的相机或图像输入设备的软件或固件的名称和版本。

制作

录音设备的制造商。这是一家生产DCS、扫描仪、视频数字化仪或其他生成图像的设备的公司。

模型

现场提到的记录设备的型号名称或型号制作.

日期时间

Exif标准定义的图像创建日期和时间,即文件更改的日期和时间。

图像描述

Exif标准定义的图像标题。

艺术家

相机所有者、摄影师或图像创建者的姓名。

版权

声称对图像拥有权利的个人或组织的版权声明。

数码相机

具有从Exif符号检索到的信息的结构体。

GPSInfo

具有从Exif符号检索到的地理符号信息的结构体。

详见: imread, imwrite, 显示图像, im格式.

默认情况下,Octave的图像IO函数(imread, imwriteimfinfo)使用GraphicsMagick图书馆的运作。这意味着支持大量的图像格式,但考虑到科学中的大量图像格式及其普遍的封闭性,不可能有一个能够阅读所有图像格式的图书馆。正因为如此,函数im格式保存一个可用格式、其扩展以及映像IO函数应使用的函数的可配置列表。这允许通过创建针对特定文件格式的函数来扩展Octave的图像IO函数。

虽然可以直接调用额外的函数,但使用正确配置Octaveim格式允许保留从文件格式中抽象出来的一致代码。

需要注意的是,文件格式实际上并不是从其文件扩展名定义的GraphicsMagick能够读取和写入比所列文件格式更多的文件格式im格式。这意味着,即使扩展名不正确或丢失,图像也可能被正确读取,即使是未列出的格式也不一定支持。

 
: imformats ()
: formats = imformats (ext)
: formats = imformats (format)
: formats = imformats ("add", format)
: formats = imformats ("remove", ext)
: formats = imformats ("update", ext, format)
: formats = imformats ("factory")

管理支持的图像格式。

格式是一个结构体,包含有关每个支持的文件格式或特定格式的信息提取,字段上显示的值提取。它包含以下字段:

提取

文件格式的名称。这可能与文件扩展名匹配,但Octave会自动检测文件格式。

描述

文件格式的详细说明。

isa

用于确认文件是否为指定格式的函数句柄。

如果文件为指定格式,则用于写入的函数句柄。

阅读

用于打开指定格式文件的函数句柄。

信息

用于获取指定格式的图像信息的函数句柄。

阿尔法

如果格式支持alpha通道(透明或无光),则为逻辑值。

多页

如果格式支持多页(每个文件多个图像),则为逻辑值。

可以使用参数更改Octave管理文件格式的方式添add, 去除使现代化,并提供一个结构体format带有必填字段。参数工厂将配置重置为默认值。

Octave软件包可以通过使用PKG_ADD和PKG_DEL命令来扩展图像读取函数Octave。

详见: imfinfo, imread, imwrite.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号