matlab中imwrite函数详解(imwrite的输出格式)

摘要:
s_Tid=srchtitle您可能认为imread函数很简单,但仍有一些细节需要注意。例如,我对imwrite函数输出的图像格式有一些疑问。下面介绍imwrite函数的用法。首先,让我们放置官方文档:rewritewritesimagedataA和文件名指定的文件,从扩展名导入文件格式。imwrite在当前文件夹中创建新文件。位输出图像的位深度取决于A的数据类型和文件格式。格式:如果Aisofdatatypeuint8,则写入输出8位值。如果Aisofatatypeuint16和输出文件格式支持16位数据,则写入输入16位值。如果Aisagrayscaler或RGB的主要地理数据类型为double或single,则编写假设动态范围为[0,1],并在将数据作为8位值写入文件之前将数据自动缩放255。如果数据为Aisagrays,则在写入GIForTIFF文件之前将其转换为double。如果数据类型为逻辑,则编写假设数据为二进制图像,并以位深度1写入文件,如果格式允许BMP、PNG或TIFF格式接受二进制图像作为输入数组。如果A包含二进制图像数据,则应另外指定mapinput参数。重写的使用也非常简单。A是图像矩阵。从上面的描述中,我们可以看到A的数据类型可以是uint8、uint16、逻辑等,也可以是indexdemagedata,即索引图。文件名是字符串。您只需将输出图像的路径和文件名传递给filename即可。此时,我们需要特定文件名的后缀来防止错误。

  参考资料:

  https://www.mathworks.com/help/matlab/ref/imwrite.html?s_tid=srchtitle

  你可能觉得imread函数很简单,但是还是有一些细节要注意。比如我就对imwrite函数输出的图片格式有一些疑问,下面对imwrite函数的用法进行解释,先放一下官方文档:


imwrite(A,filename) writes image data A to the file specified by filename, inferring the file format from the extension. imwrite creates the new file in your current folder. The bit depth of the output image depends on the data type of A and the file format. For most formats:

  • If A is of data type uint8, then imwrite outputs 8-bit values.

  • If A is of data type uint16 and the output file format supports 16-bit data (JPEG, PNG, and TIFF), then imwrite outputs 16-bit values. If the output file format does not support 16-bit data, then imwrite returns an error.

  • If A is a grayscale or RGB color image of data type double or single, then imwrite assumes that the dynamic range is [0,1] and automatically scales the data by 255 before writing it to the file as 8-bit values. If the data in A is single, convert A to double before writing to a GIF or TIFF file.

  • If A is of data type logical, then imwrite assumes that the data is a binary image and writes it to the file with a bit depth of 1, if the format allows it. BMP, PNG, or TIFF formats accept binary images as input arrays.

If A contains indexed image data, you should additionally specify the map input argument.


  imwrite的用法本身也很简单,A是一个图像矩阵,从上述说明中可以看出,A的数据类型可以是uint8,uint16,logical等,还可以是indexed image data即索引图。filename是一个字符串,将输出图像的路径和文件名传给filename即可。更进一步从描述中可看出,输出图片文件的格式由后缀名(extension)决定,uint8基本都支持,uint16则仅有部分图片格式支持。此时我们就要specific文件名的后缀,防止出现error。

  看文档又好奇这个indexed image即索引图是什么,在网上找了一张图:

matlab中imwrite函数详解(imwrite的输出格式)第1张

  简单来说就是给一幅图像出现的所有RGB值编一个映射表,然后有一个和图像形状一样的索引矩阵,查表即可得到RGB图。 

免责声明:文章转载自《matlab中imwrite函数详解(imwrite的输出格式)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubuntu iptables设置如何修改快捷方式网页的图标为谷歌浏览器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

PHP是怎么运行的

严格来说,与PHP相关的过程不需要手动启动。它们与Apache启动一起运行。当然,如果需要重新启动PHP服务,可以手动重新启动PHP。最后,它被移交给PHP内核的ZendEngine进行顺序执行。PHP在开始执行后将经历两个主要阶段:处理请求之前的开始阶段和请求之后的结束阶段。PHP的结束阶段分为两个阶段:禁用模块和关闭模块。...

Revit导入lumion渲染

利用Revit导出DAE文件格式插件,可以将Revit模型导入到lumion中进行图片渲染和漫游动画的制作。lumion强大的漫游功能,丰富的附加组件,绚丽的视频特效。lumion没有建模功能,但是Revit建模的没有统一的标准,导致一些不该同样的材质的地方,无法更改;如果有统一的标准,那么Revit结合lumion能做出任何想要的效果。Revit13版本能...

C# Winform Treeview控件

WinformTreeview控件目录手动添加节点。丰富节点数据并清除所有节点信息。选择指定的节点。函数GetAllTreeNodeWinformTreeview控件手动添加节点//在根节点下添加根节点和子节点TreeNodeCollectionRoot=treeView1.Nodes;TreeNodecurNode=根。添加(“良好”);curN(电流)...

SpringBoot入门 (三) 日志配置

上一篇博客文章记录了在spring-boot项目中读取的属性文件中配置的属性。本文将学习如何登录springboot项目。SpringBoot在内部使用CommonsLogging进行日志记录,但它也为其他日志记录框架提供默认配置,如JavautilLogging、Log4j2和Logback。在每种情况下,日志记录器都预先配置为使用控制台输出和可选文件输出...

GitLab的基础使用-创建用户(users)

否则,将追究法律责任。1、 以管理员身份登录GitLab的WebUI,并创建用户1˃使用管理员登录GitLab。管理员登录成功后,点击下图所示的小扳手,然后点击进入管理员的Dashboard界面。如果时间间隔过长,可以要求运维人员重置密码。操作和维护人员可以参考第一步来重置用户的密码。实际上,您也可以通过参考第三步中的方法找到自己的密码,而不必麻烦操作和维护...

Windows10 解除公司换壁纸限制

桌面点右键,属性,就可以改自己喜欢的桌面背景了。...