1、MATLAB支持的图像文件格式

(1)JPEG(Joint Photographic Experts Group):一种称为联合图像专家组的图像压缩格式。

(2)BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位行程编码(RLE,Run Length Encoded)的图像。文件内容包括文件头(一个BITMAPFILEHEADER数据结构)、位图信息数据块(位图信息头BITMAPINFOHEADER和一个颜色表)和图像数据。

(3)PCX(Windows Paint Brush):可处理1位、4位、8位、16位、24位等图像数据。文件内容包括文件头、图像数据和扩展色图数据。

(4)TIFF(Tagged Image File Format):处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。

(5)PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。

(6)GIF(Graphics Interchange Format):任何1位到8位的可交换的图像。

(7)HDF(Hierarchical Data Format):有8位、24位光栅图像数据集。

(8)ICO(Windows Icon resource):有1位、4位、8位非压缩图像。

(9)CUR(Windows Cursor resource):有1位、4位、8位非压缩图像。

(10)XWD(X Windows Dump):包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。

(11)RAS(Sun Raster image):有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。

(12)PBM(Portable Bitmap)。

(13)PGM(Portable Graymap)。

(14)PPM(Portable Pixmap)。

2、MATLAB支持的五种图像类型

即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。

图像类型

double数据

uint8和uint16数据

二值图像

图像为m×n的整数矩阵,元素值范围[0,1]

图像为m×n的整数矩阵,元素值范围[0,1]

索引图像

图像为m×n的整数矩阵,元素值范围[0,p]

图像为m×n的整数矩阵,元素值范围[0,p-1]

灰度图像

图像为m×n的浮点数矩阵,元素值范围[0,1]

图像为m×n的整数矩阵,元素值范围[0,255]或[0,65535]

RGB图像

图像为m×n×3的浮点数矩阵,元素值范围[0,1]

图像为m×n×3的整数矩阵,元素值范围[0,255]或[0,65535]

多帧图像阵列

由多帧图像组成的,每一帧图像可以为前四种图像中的一种,但组成一个多帧图像阵列的图像必须为同一种。cat函数可以将具有相同尺寸的几个独立图像存成多帧文件。对于多帧图像也可以从中提取单帧。

2.1 图像类型判断及转换

(1)在MATLAB中如果要判断一个图像文件的类型,可使用如下指令:

- isbw:若图像为二值图像,则返回真;

- isgray:若图像为灰度图像,则返回真;

- isind:若图像为索引图像,则返回真;

- isrgb:若图像为RGB图像,则返回真。

(2)在MATLAB系统中,要将一个类型的图像文件转换成另一个类型的图像文件,只需将前一个文件的图像数据用imread 读出,再用imwrite 以适当的格式写到后一个图像文件中去即可。另外,要将灰度图像I转换成RGB图像,可运用cat指令。cat函数可以把一些单一的图像合并成图像序列。在图像序列中每个图像需有相同的大小,如果是索引图像,色图也要一致。此外,MATLAB还提供了若干函数,用于图像类型的转换。这些函数有:

- dither:用抖动法(dithering)转换图像。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。

- gray2ind:灰度图像或二值图像向索引图像转换。

- grayslice:设定阈值将灰度图像转换为索引图像。

- im2bw:设定阈值将灰度、索引、RGB图像转换为二值图像。

- im2double:将图像数组转换为double型。

- im2uint8:将图像数组转换为uint8型。

- im2uint16:将图像数组转换为uint16型。该函数不支持二值图像序列的转换。

- ind2gray:索引图像向灰度图像转换。

- ind2rgb:索引图像向RGB图像转换。

- mat2gray:将一个数据矩阵转换为灰度图像。

- rgb2gray:RGB图像向灰度图像转换或将彩色色图转换成灰度色图。

- rgb2ind:RGB图像向索引图像转换。包含三种不同方法:均衡量化、最小值量化、色图映射。

- im2java:一般图像向Java图像转换。

- label2rgb:标志图像向RGB图像转换。

2.2 图像的查询及读写

(1)在MATLAB中要查询一个图像文件的信息,只要用imfinfo 指令加上文件及其完整路径名即可。函数调用格式为:

info =imfinfo(filename,fmt)

info =imfinfo(filename)

其中参数fmt对应于所有图像处理工具箱中所有支持的图像文件格式。

(2)MATLAB提供了两个重要的用于图像文件的读写的指令,分别是从图像文件中读取数据的imread,以及将数据写入到图像文件中的imwrite:

a. imread 的常见调用格式为:A=imread(filename,fmt)。其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m×n×3的三维矩阵。Filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。

imread 的其他几种重要的调用格式为:

[X,map]=imread(filename.fmt)

[…]=imread(filename)

[…]=imread(URL,…)

[…]=imread(…,idx) (CUR,ICOandTIFFonly)

[…]=imread(…,’frames’,idx)(GIFonly)

[…]=imread(…,ref)(HDFonly)

[…]=imread(…,’BackgroundColor’,BG)(PNGonly)

[A,map,alpha]=imread(…)(ICO,CURandPNGonly)

上面一些参数的含义如下:idx 是指读取图标(cur、ico、tiff)文件中第idx 个图像,默认值为1。’frame’,idx是指读取gif文件中的图像帧,idx 值可以是数量、向量或’all’。ref是指整数值。alpha是指透明度。

b. imwrite 的常用调用格式为:

imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(…,filename)

imwrite(…,Param1,Val1,Param2,Val2…)

其中imwrite(…,Param1,Val1,Param2,Val2…)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。在MATLAB中,默认的保存类型是uint8。由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。

2.3 图像的显示

显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc函数也具有image 的功能,所不同的是imagesc函数还自动将输入数据比例化,以全色图的方式显示。imshow 函数比image 和imagesc 更常用,它能自动设置句柄图像的各种属性。

(1)imshow 可用于显示各类图像。对于每类图像,调用方法如下:

- imshow filename:显示图像文件。

- imshow(BW):显示二值图像,BW为黑白二值图像矩阵。

- imshow(X,map):显示索引图像,X为索引图像矩阵,map为色彩图示。

- imshow(I):显示灰度图像,I为二值图像矩阵。

- imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。

- imshow(I,[low high]):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中[low high]用于定义待显示数据的范围。

(2)有关图像显示的函数或其辅助函数,除了上述的以外,MATLAB还提供了一些用于进行图像的特殊显示的函数。

- colorbar:为图像的显示增加一个颜色条,这一用法对于了解被显示图像的灰度级别特别有用。

- getimage:获取图像数据。

- immovie:将多帧索引图像制作成连续图像格式。其调用格式为:

mov=immovie(D,map)。不过这种功能只对索引图像有效,其中D为多帧索引图像阵列,map为索引图像的对应色阶。对于其他类型图像,则需要首先将其转换为索引图像。

- montage:多帧图像的一次显示。它能将每一帧分别显示在一幅图像的不同区域,所有子区的图像都用同一个色彩条。

-movie:播放多帧连续图像。

- subimage:在一个图形区域内显示多个图像。

- truesize:调整图像显示的尺寸。

- warp:显示图像的纹理表面图。前面提到的图像显示手段都只能在二维平面上显示,MATLAB6.5的一个强大功能是能将平面图像显示在空间三维曲面上。这是由warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像投影到三维曲面上。

- zoom:将图像或二维图形进行放大或缩小显示。zoom本身是是一个开关键,zoom on用于打开缩放模式,zoom off用于关闭该模式,zoom in 用于放大局部图像,zoom out用于缩小图像。

(3)至于多个图像的显示,则可分为两个方面:在不同的图形窗口显示不同的图像,可以用figure指令来实现;在同一个图形窗口显示多图,可以用subplot来实现。

3、MATLAB图像运算

(1)点运算将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的值决定。它常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。点运算因其作用性质,也被称为对比度增强、对比度拉伸或灰度变换。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。

(2)点运算实际上是灰度到灰度的映射过程。点运算不会改变图像内像素点之间的空间关系。设输入图像为A(x,y),输出图像为B(x,y),则点运算可表示为:B(x,y)=f[A(x,y)]。点运算可完全由灰度变换(gray-scale transformation)函数s=f(r)决定,后者描述了输入灰度级与输出灰度级之间的映射关系。图像的点运算分为线性点运算和非线性点运算两种。

图像处理基础知识及matlab,MATLAB图像处理基础知识相关推荐

  1. 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识

    本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...

  2. MATLAB高光谱图像处理基础

    介绍高光谱图像的基本知识,便通过MATLAB对高光谱图像进行基本的处理. 文章目录 前言 一.高光谱图像 二.MATLAB高光谱图像处理 1.加载.MAT文件数据 2.图像的显示 3.图像维度变换 总 ...

  3. Matlab数字图像处理仿真基础教学

    目的 1.熟悉图像的四种类型. 2.熟练掌握图像的读.写操作以及显示方法. 3. 熟悉图像的类型转换以及格式转换. 实验原理 1. 图像的表示以及数字化 广义的图像是指视觉信息.举凡照片.图画.电视画 ...

  4. 半小时入门MATLAB编程入门基础知识:

    https://learnxinyminutes.com/docs/zh-cn/matlab-cn/ 半小时入门MATLAB编程入门基础知识: % 以百分号作为注释符 %{ 多行注释 可以 这样 表示 ...

  5. 精通Matlab数字图像处理与识别nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;

    文章目录 1. 数字图像处理与识别 1.1数字图像 1.2 数字图像处理与识别 1.3 数字图像处理的预备知识 1.4 基本的图像操作 2. MATLAB基础 2.1 常用命令 2.2 矩阵 2.3 ...

  6. matlab对于处理数字图像的优点,学习MATLAB数字图像处理经验谈

    学习MATLAB数字图像处理经验谈 学习数字图像处理经验谈 (赵小川) 一.面向应用:层层分解.抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用 ...

  7. matlab图像类论文,基于matlab图形图像处理技术毕设论文.doc

    基于matlab图形图像处理技术毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域的个别 ...

  8. MATLAB图形图像处理——图像灰度变换

    MATLAB图形图像处理--图像灰度变换 一.MATLAB入门知识 1.什么是MATLAB 2.MATLAB处理图像 图像数据 数据类型 位深 函数 imread imwrite 二.图像灰度变换基础 ...

  9. matlab图形图像处理论文,基于matlab图形图像处理技术-本科毕设论文.doc

    基于matlab图形图像处理技术-本科毕设论文 基于MATLAB图形图像处理技术 摘 要 本文提出了一种基于MATLAB的数字图像处理技术的设计,系统中包括了图像处理技术的各个方面,涵盖了图像处理领域 ...

  10. 有没有matlab软件教程基础讲课的老师,详解MATLAB快速入门与应用之MATLAB软件教学视频...

    本教程为<详解MATLAB快速入门与应用>的DVD部分,没有PDF教材, 本文件夹中提供各章范例的源程序.程序编号与书中例子的编号不完全相同,如"2.1.1-5"表示为 ...

最新文章

  1. 移动端打开html控制台,移动端中使用调试控制台 eruda
  2. NGUI的button的创建的问题(Button Script)
  3. linux awk列数据处理工具使用示例
  4. ITK:用颜色标记图像中的区域
  5. fifo的rdata_同步FIFO设计
  6. PHP登录密码的生成与验证
  7. Eclipse文件夹导入Jar
  8. SAP CRM user参数CRM_UI_PROFILE是在哪行ABAP代码里读取的
  9. centos卸载内核_CentOS 中内核模块的加载和卸载
  10. HH SaaS电商系统的销售订单付款后生成采购单和出库单的时序图
  11. mock模拟接口测试 vue_vue+mock.js实现前后端分离
  12. r语言 线性回归 相关系数_基于R语言的lmer混合线性回归模型
  13. django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)
  14. 《从问题到程序:用Python学编程和计算》——2.4 字符串
  15. 格式要求_论著的格式要求
  16. linux service命令
  17. 应用密码学:协议、算法与C源程序(学习第二章)
  18. win7电脑网站服务器,Win7系统
  19. 阿里巴巴android代码生成器,在线热点代码生成器代码生成工具-1秒钟美工助手官方网站...
  20. PostgreSQL/pgsql生成随机的姓名的函数

热门文章

  1. NSAttributedString 详解
  2. matlab函数isempty_matlab基本函数inf, isempty, round, floor, fix
  3. java 拆分类_拆分或不拆分类(用Java)
  4. 历史版本_DNF:历史版本十大经典地图,没经历过那个时代的人不会明白的
  5. Java单元测试的意义_单元测试重要意义及方法介绍
  6. 谭浩强c语言第六章兔子数列,谭浩强 C语言 第6章_循环.ppt
  7. 在数组中查找一个数并输出所处位置
  8. html5 生存游戏,html5版生命游戏
  9. echarts geo地图示例_python小白的画地图合集(使用pyecharts)
  10. tp5权限管理代码_权限系统控制到按钮级别开源推荐 Spring BootShiroVue