matlab的imread怎么用_imread函数参数的含义

matlab的imread怎么用_imread函数参数的含义imread(matlab)                                            函数语法 A = imread(filename, fmt)[X, map] = imread(…)[…] = imread(filename)[…] = imread(URL,…)[…] = imread(

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用



imread(matlab)

                                            

函数语法
 

A = imread(filename, fmt)
[X, map] = imread(…)
[…] = imread(filename)
[…] = imread(URL,…)
[…] = imread(…,Param1,Val1,Param2,Val2…)

参数解析




A = imread(filename, fmt) 
根据文件名filename读取灰度或彩色图像。若filename文件不在当前目录下,也不在Matlab搜索路径下,则必须指定全路径。根据标准文件扩展名指定文件的格式fmt。如为图形交换格式文件指定’gif’格式。用imformats函数查看支持的格式的扩展名清单,若imread函数找不到filename文件,将查打filename.fmt文件。
返回的数组A包含图像数据。若文件包含灰色图像,A是M*N的数组;若文件包含真彩色图像,A是M*N*3的数组。对于彩色的tiff文件将用CMYK颜色空间,A是M*N*4的数组。
返回的A的类型与图像采样的位有关。如24位颜色imread函数返回uint8数据因为每个颜色分量都是8位的。
[X, map] = imread(…) 
从filename文件中,读取索引图像X以及与之对应的颜色表到map中。颜色表中的值将归一化到[0,1]之间。
[…] = imread(filename) 
尝试推断文件内容的格式
[…] = imread(URL,…) 
从互联网地址中读取图像。其中URL必须包含协议,如http://
[…] = imread(…,Param1,Val1,Param2,Val2…) 
指定参数属性对来指定格式,可查看下面的指定格式信息部分(按字母顺序进行排序)
        BMP  位图
        CUR 静态光标文件
        GIF 图像互换格式
        HDF4 分层数据格式
        ICO 图标文件
        JPEG 联合图像专家组
        JPEG2000 联合图像专家组2000
        PBM 流式位图(单色)
        PCX  Windows的画笔
        PGM 流式灰度图
        PNG 流式网络图形
        PPM 流式像素图
        RAS SUM光栅图片格式
        TIFF 标签图像文件格式
        XWD  X windows转储格式
下面简要介绍各种数据格式
1、BMP  位图
支持的位深 不压缩 RLE压缩 输出的类型 说明
1位 y – 逻辑型
4位 y y uint8
8位 y y uint8
16位 y – uint8 每像素1采样
24位 y – uint8 每像素3采样
32位 y – uint8 每像素3采样(填充1字节)
2、CUR 静态光标文件
支持的位深 不压缩 压缩 输出类型
1位 y – 逻辑型
4位 y – uint8
8位 y – uint8
指定格式的语法:
  […] = imread(…, idx) 
从多图标或光标文件中读取一个图像。idx是一个整数用于指定图像在文件中出现的序号。如idx=3即读取文件中第3个图像。若忽略idx,则读取文件中第一个图像。
  [A, map, alpha] = imread(…) 
返回资源的与操作的掩码,它可以用来确定透明度信息。对于静态光标文件,这个掩码是最有用的东西。
注意:Windows的光标是32*32像素的,而Matlab为16*16像素的。若装有图像处理工具箱,可以用imresize函数进行放缩。
3、GIF 图像互换格式
支持的位深 不压缩 压缩 输出类型
1位 y – 逻辑型
2位到8位 y – uint8
指定格式的语法:
  […] = imread(…, idx) 
从多帧的gif文件(动画)中读取一帧或多帧信息。idx必须是整数或整数组成的向量。如idex=3代表读取第3帧的图像;idx=1:5则只读取头5帧的图像。
  […] = imread(…, ‘frames’, idx) 
与上述语法相同,但这里的idx可以为’all’,代表读取读取整个文件所有的帧。
 注意:由于gif文件的结构方式,当读取部分帧时实际上要读取所有的帧。因此,指定要读取的帧的向量或所有帧要比用循环来读取gif文件要来得快。
4、HDF4 分层数据格式
支持的位深 带颜色图的光栅图像 不带颜色图的光栅图像 输出类型 说明
8位 y y uint8
24位 – y uint8 每像素3采样
指定格式的语法:
  […] = imread(…, ref) 
从一个多图像的HDF4文件中读取一个图像。ref是一个整数,用于指定图像的识别参考号码。如ref=12,即读取参考数为12的图像。注意:在HDF4文件中,参考数与文件中图像的序号并不是一致的,可借助imfinfo函数得到二者之前的关系。另外若忽略ref,则读取文件中第一个图像。
5、ICO 图标文件
        参看2、CUR 静态光标文件
6、JPEG 联合图像专家组
支持的位深 有损压缩 无损压缩 输出类型 说明
8位 y y uint8 灰度或RGB
12位 y y uint16 灰度或RGB
16位 – y uint16 灰度
7、JPEG2000 联合图像专家组2000
支持的位深 有损压缩 无损压缩 输出类型 说明
1位 y y 逻辑型 仅灰度
2到8位 y y uint8 灰度或RGB
9到16位 y y uint16 灰度或RGB
指定格式的语法:
  […] = imread(…, ‘Param1’, value1, ‘Param2’, value2, …) 
用下表中的参数属性对来控制读操作
        ‘ReductionLevel’:一个非负整数,用于指定图像减少的分辨率。若ReductionLevel=L,则图像分辨率以2^L尺度减小。缺省的ReductionLevel为0,即不减少分辨率。该值以总压缩水平为限,由imfinfo函数返回的WaveletDecompositionLevels字段给出。
        ‘PixelRegion’:以(rows,cols)表示,返回以rows,cols为界的子图像。其中rows和col都是含有两个元素的向量。若ReductionLevel大于0,则rows和cols为减小图像的坐标。
8、PBM 流式位图(单色)
支持的位深 二进制Raw ASCII编码 输出类型
1位 y y 逻辑型
9、PCX  Windows的画笔
支持的位深 输出类型 说明
1位 逻辑型 仅灰度图像
8位 uint8 灰度或索引图像
24位 uint8 RGB,每像素3个8位采样
10、PGM 流式灰度图
支持的位深 二进制Raw ASCII编码 输出类型 说明
8位 y – uint8
16位 y – uint16
随意 – y 1到8位返回uint8,9到16位返回uint16 归一化的值
11、PNG 流式网络图形
支持的位深 输出类型 说明
1位 逻辑型 灰度图像
2位 uint8 灰度图像
4位 uint8 灰度图像
8位 uint8 灰度或索引图像
16位 uint16 灰度或索引图像
24位 uint8 RGB,每个像素三个8位采样
48位 uint16 RGB,每个像素三个16位采样
指定格式的语法:
  […] = imread(…,’BackgroundColor’,BG) 
以背景色BG对输入的图像合成,若BG为’none’,则不进行合成。若输入的是索引图像,BG必须是[1,P]之间的整数,这里的P是颜色表的长度。若输入的是灰度图,BG必须是[0,1]之间的整数。若输入的是RGB图像,RGB三分量都必须在[0,1]之间。字符串’BackgroundColor’可以被忽略。
  [A, map, alpha] = imread(…) 
如果存在返回alpha通道,否则返回空。注意当输入文件含有灰度或真彩图像,map可能为空。
若指定alpha这个输出参数,BG若不指定,则缺省为’none’。否则,若PNG文件含有背景颜色块,这个值将作为BG的缺省值;若alpha没有指定且文件中也没有背景颜色块,对于索引图像文件BG缺省值为1、灰度图BG缺省值为0、真彩色(RGB)图像BG缺省值为[0,0,0]。
12、PPM 流式像素图
支持的位深 二进制Raw ASCII编码 输出类型
不多于16位 y – uint8
任意位 – y
13、RAS SUM光栅图片格式
支持的位深 输出类型 说明
1位 逻辑型 位图
8位 uint8 索引图像
24位 uint8 RGB,每像素三个8位采样
32位 uint8 含有alpha的RGB,每像素四个8位采样
14、TIFF 标签图像文件格式
imread函数支持下列tiff:
        1、每个像素任意个采样
        2、CCITT 3及4传真、PackBits、JPEG、LZW、ThunderScan压缩,以及不压缩的图像
        3、逻辑型、灰度、索引、真彩以及高光谱图像
        4、RGB、BMYK、CIELAB、ICCLAB颜色空间。若彩色图像使用CMYK颜色空间,则A是M*N*4数组。可以用imfinfo函数查看图像文件使用的颜色空间(查看PhotometricInterpretation字段)。若文件包含CIELAB颜色数据,imread先转成ICCLAB然后再导入MATLAB空间,这是因为8或16位的CIELAB编码的值使用的是有符号或无符号的数据类型,而这些类型不能在单一MATLAB数组中保存。
        5、数据重组成块或扫描线
下表给出imread支持的位深等信息:
支持的位深 压缩 输出类型 说明
不压缩 Packbits CCITT RGB ICCLAB CLELAB CMYK
1位 y y y – – – – 逻辑型
8位 y y – – – – – uint8
12位 – – – – – – – uint16 灰色或索引图像
16位 – – – – – – – uint16 灰色或索引图像
24位 y y – y y y – uint8 每像素3采样
32位 – – – – – – y uint8 每像素4采样
36位 – – – y – – – uint16 每像素3采样
48位 – – – y y y – uint16 每像素3采样
64位 – – – – – – y double 每像素4采样
注意:imread函数支持8位整型以及32位浮点型的任意压缩以及上述颜色空间的图像。
指定格式的语法:
  A = imread(…) 
返回使用RGB、CIELAB、ICCLAB或CMYK颜色空间的数据。若使用CMYK颜色空间,则A是M*N*4的数组。
  […] = imread(…, ‘Param1’, value1, ‘Param2’, value2, …) 
指定参数属性对来指定格式:参数有:
‘Index’:正整数,用于指定要读的图像。如指定’Index’为3,则imread读文件中的第三个图像。若省略,imread则读取文件中第一个图像。
‘Info’:imfinfo函数返回的结构体。
‘PixelRegion’:细胞元数组{rows,cols},指定区域的边界。rows和cols必须是两个元素或三个元素的向量。若指定两个元素的向量,各元素的值是从1开始计算的序数[start stop];若指定三个元素的向量,各元素的值是从1开始计算的序数[start increment stop]即[起始 步长 终止]。
版权的信息,可查看libtiffcopyright.txt文件。
15、XWD  X windows转储格式
支持的位深 ZPixmaps XYBitmaps XYPixmaps 输出类型
1位 y – y 逻辑型
8位 y – – uint8
支持的类:对于大多数的格式,每个颜色imread用8位或者更少的位来保存一个像素。下表给出各种文件数据类型返回的数组类型。
文件中的数据类型 imread返回的数组类
每像素1位 逻辑型
每像素2到8位 uin8
每像素9到16位 uint16(bmp、JPEG、PNG和TIFF)。对于5-6-5的16位bmp格式,Matlab返回uint8




位深是保存每个像素所需要的位数。位深等于每像素的采样数*每次采样需要的位数。因此对于每个分量需要8位的格式而言,每个像素三次采样的位深为24位。有时采样大小与位深并不是对应的,如48位的位深,它可以是6次8位采样,也可以是4次12位采样,也可以是3次16位采样。

典型实例




例1:
imdata = imread(‘xxxxx.jpg’);        %读取文件

例2:
[cdata,map] = imread( filename )         %读索引图像文件
if ~isempty( map )     
   cdata = ind2rgb( cdata, map );         %将索引图像数据转为RGB图像数据
end 

例3:读取tiff文件中第6个图像:
[X,map] = imread(‘xxxxx.tif’,6);

例4:读取HDF4中的第四个图像,HDF4要用参考号来读取图像:
info = imfinfo(‘xxxxx.hdf’);
[X,map] = imread(‘xxxx.hdf’,info(4).Reference);

例5:读一个24位的PNG图像,其完全透明的像素设置为红色。:
bg = [1 0 0];            %背景色
A = imread(‘xx.png’,’BackgroundColor’,bg);

例6:返回png图像的alpha通道:
[A,map,alpha] = imread(‘your_image.png’);

例7:读ico图像,用透明的掩码并显示:
[a,b,c] = imread(‘xxx.ico’); 
b2 = [b; 1 1 1];                         %构建新的颜色表
d = ones(size(a)) * (length(b2) – 1);    %非透明区域,取[1,1,1]
d(c == 0) = a(c == 0);                     %保留透明的区域的颜色
image(uint8(d)), colormap(b2)            %显示

matlab的imread怎么用_imread函数参数的含义         

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181895.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【相机标定系列】相机sensor传感器尺寸,CMOS靶面尺寸,分辨​率​和​镜头​焦距,畸变处理效果,相机主点

    【相机标定系列】相机sensor传感器尺寸,CMOS靶面尺寸,分辨​率​和​镜头​焦距,畸变处理效果,相机主点https://blog.csdn.net/j_shui/article/details/77262947相机标定是进行视觉测量和定位的基础工作之一,标定参数准确与否直接关系到整个系统的精度,为此根据自己项目中的经验及参考相关的商用视觉软件的做法将相机标定过程中标定图片的获取过程中需要注意的问题总结如下:标定板拍摄的张数要能覆盖整个测量空间及整个测量视场,把相机图像分成四个象限(如图1所示),应保证拍摄的标定板图像均匀分布在四个象限中,且在每个象限中建议进行不同方向的两次倾斜,图2是一组推荐摆放方式图片

    2022年6月5日
  • 编码解码乱码字符集[通俗易懂]

    编码解码乱码字符集[通俗易懂]编码EnCode:将字符转化为字节解码DeCode:将字节转化为字符乱码:打个比方—比较多人知道的联通用字符集GBK的时候出现这样的情况:��ͨ,这就是乱码常见的中文字符集有:GBK和UTF-8国际上常用的字符集:Unicode(大字典)、ANSI UTF-8,中文占三个字节,英文占一个字节(变长),还有定长占两个字节(耗费空间多)GBK,中文占两个zijie…

    2022年5月30日
  • visual studio发生了未处理的异常_灾难性故障0x8000ffff

    visual studio发生了未处理的异常_灾难性故障0x8000ffff故障说明:使用vs2010时,由于文件创建MFC类时,移除文件后重新创建正确的基类,覆盖之前创建的文件造成,在“解决方案资源管理器”点击“cpp”文件弹出该提示。解决方法:在“解决方案资源管理器”,重命名cpp文件,双击打开后,改回原名即可。

    2022年9月24日
  • Netty框架的下载「建议收藏」

    1.Netty框架Jar包的下载:上图中标记的点都需要√上,并且文件夹的位置表示,会将下载好的Netty中的相关文件放在指定的目录下的lib文件夹下面。然后点击搜索,在下拉框中选择合适的版本进行下载…

    2022年4月11日
  • 2021.7idea激活码_在线激活

    (2021.7idea激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
  • 永磁同步电机矢量控制(一)——数学模型

    导师研究的课题是永磁同步电机的控制,首先给我安排的任务就是将其矢量控制系统仿真搭建出来。本文记录矢量控制系统学习过程。因为是初学我的理解可能不够,其中每个内容的出处都会在文章内标注出来,大家可以参考原文原著。1、永磁同步电机的数学模型(参考于解小刚、陈进采用Id=0永磁同步电机矢量控制文章)永磁同步电机是一个非线性系统,具有多变量、强耦合的特点。我们对其分析的时候有以下假设:…

    2022年4月6日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号