其他分享
首页 > 其他分享> > Matlab图像处理(入门笔记)

Matlab图像处理(入门笔记)

作者:互联网

Matlab图像处理

注:某些函数有些过时

1. 图像的数据结构

1.1 矩阵

  1. 黑白图像

I = [ 1 1 0 0 1 1 1 0 1 ] I= \left[ \begin{matrix} 1&1&0 \\ 0&1&1 \\ 1&0&1 \end{matrix} \right] I=⎣⎡​101​110​011​⎦⎤​

  1. 灰度图像
  1. 彩色图像

1.2 链码

1.3 拓扑结构

只考虑上下左右:4-邻域

r
rpr
r

只考虑对角:对角邻域

ss
p
ss

考虑全部:8-邻域

srs
rpr
srs

1.4 关系结构

用于描述一组目标物体之间的相互关系

子树1 子树2 子树3 子树4 子树5 叶子

2. Matlab 图像处理

2.1 图像处理工具箱

2.2 图像类型的转换

  1. RGB图像转换为灰度图像: X=rgb2gray(I)

  2. RGB图像转换为索引图像: X=rgb2ind(I)
    还可以输入参数项dither_option,选择是否使用抖动

    RGB图像一个像素占用三个字节, 分别存储R、G、B分量的值,而索引图像一个像素占用一个字节
    索引模式主要用于网络上的图片传输和一些对图像象素、大小等有严格要求的地方

  3. 灰度图像转换为索引图像

  1. 索引图像转换为灰度图像:I=ind2gray(X,map)
    输入图像的数据类型可以是double型或unit8型,但输出为double型

  2. 索引图像转换为RGB图像:RGB=ind2rgb(X,map)
    输入图像的数据类型可以是double型、unit8型或unit16型,但输出为double型

  3. 二值图像的转换:im2bw()

  1. 数据矩阵转换为灰度图像:mat2gray(X,[xmin,xmax])

2.3 图像文件的读写

  1. 图像文件信息读取 INFO=imfinfo('filename','fmt')INFO=imfinfo('filename,fmt')
结构数组成员名所代表含义
Filename文件名称
FileMoDate文件最后修改日期和时间(日-月-年 时:分:秒)
FileSize文件大小(子节)
Format文件扩展名
FormatVersion文件格式版本号
Width图像宽度(像素)
Height图像高度(像素)
BitDepth每个像素所占位宽
ColorType图像类型
  1. 图像文件的读取
A = imread(filename)
A = imread(filename,fmt)
A = imread(___,idx)
A = imread(___,Name,Value)
[A,map] = imread(___)
[A,map,transparency] = imread(___)
  • A = imread(filename) 从 filename 指定的文件读取图像,并从文件内容推断出其格式。如果 filename 为多图像文件,则 imread 读取该文件中的第一个图像。
  • A = imread(filename,fmt) 另外还指定具有 fmt 指示的标准文件扩展名的文件的格式。如果 imread 找不到具有 filename 指定的名称的文件,则会查找名为 filename.fmt 的文件。
  • A = imread(___,idx) 从多图像文件读取指定的图像。此语法仅适用于 GIF、PGM、PBM、PPM、CUR、ICO、TIF、SVS 和 HDF4 文件。您必须指定 filename 输入,也可以指定 fmt。
  • A = imread(___,Name,Value) 使用一个或多个名称-值对组参数以及先前语法中的任何输入参数来指定格式特定的选项。
  • [A,map] = imread(___) 将 filename 中的索引图像读入 A,并将其关联的颜色图读入 map。图像文件中的颜色图值会自动重新调整到范围 [0,1] 中。
  • [A,map,transparency] = imread(___) 另外还返回图像透明度。此语法仅适用于 PNG、CUR 和 ICO 文件。对于 PNG 文件,如果存在 alpha 通道,transparency 会返回该 alpha 通道。对于 CUR 和 ICO 文件,它为 AND(不透明度)掩码。
  1. 图像文件的保存
imwrite(A,filename)
imwrite(A,map,filename)
imwrite(___,fmt)
imwrite(___,Name,Value)
  • imwrite(A,filename) 将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。imwrite 在当前文件夹中创建新文件。输出图像的位深取决于 A 的数据类型和文件格式。对于大多数格式来说:
  • 如果 A 属于数据类型 uint8,则 imwrite 输出 8 位值。
  • 如果 A 属于数据类型 uint16 且输出文件格式支持 16 位数据(JPEG、PNG 和 TIFF),则 imwrite 将输出 16 位的值。如果输出文件格式不支持 16 位数据,则 imwrite 返回错误。
  • 如果 A 是灰度图像或者属于数据类型 double 或 single 的 RGB 彩色图像,则 imwrite 假设动态范围是 [0,1],并在将其作为 8 位值写入文件之前自动按 255 缩放数据。如果 A 中的数据是 single,则在将其写入 GIF 或 TIFF 文件之前将 A 转换为 double。
  • 如果 A 属于 logical 数据类型,则 imwrite 会假定数据为二值图像并将数据写入位深为 1 的文件(如果格式允许)。BMP、PNG 或 TIFF 格式以输入数组形式接受二值图像。
  • 如果 A 包含索引图像数据,则应另外指定 map 输入参数。
  • imwrite(A,map,filename) 将 A 中的索引图像及其关联的颜色图写入由 map filename 指定的文件。
  • 如果 A 是属于数据类型 double 或 single 的索引图片,则 imwrite 通过从每个元素中减去 1 来将索引转换为从 0 开始的索引,然后以 uint8 形式写入数据。
  • 如果 A 中的数据是 single,则在将其写入 GIF 或 TIFF 文件之前将 A 转换为 double。
  • imwrite(___,fmt) 以 fmt 指定的格式写入图像,无论 filename 中的文件扩展名如何。您可以在任何先前语法的输入参数之后指定 fmt。
  • imwrite(___,Name,Value) 使用一个或多个名称-值对组参数,以指定 GIF、HDF、JPEG、PBM、PGM、PNG、PPM 和 TIFF 文件输出的其他参数。您可以在任何先前语法的输入参数之后指定 Name,Value。
  1. 图像文件的显示
  1. 视频文件的读写(略):
    aviread()(旧版本)、aviinfo()(旧版本)、movie()
    mmfileinfommreader()read()

2.4 图像点运算

2.5 图像的空间变换

B = imwarp(A,tform)
B = imwarp(A,D)
[B,RB] = imwarp(A,RA,tform)
[___] = imwarp(___,interp)
[___] = imwarp(___,Name,Value)
  • B = imwarp(A,tform) 根据几何变换 tform 来变换数值、逻辑或分类图像 A。该函数在 B 中返回变换后的图像。
  • B = imwarp(A,D) 根据位移场 D 变换图像 A。
  • [B,RB] = imwarp(A,RA,tform) 变换由图像数据 A 指定的空间参照图像及其关联的空间参照对象 RA。输出是由图像数据 B 指定的空间参照图像及其关联的空间参照对象 RB。
  • [___] = imwarp(___,interp) 指定要使用的插值的类型。
  • [___] = imwarp(___,Name,Value) 指定名称-值对组参数来控制几何变换的各个方面。
imcrop裁剪图像
imcrop3Crop 3-D image
imresize调整图像大小
imresize3Resize 3-D volumetric intensity image
imrotate旋转图像
imrotate3Rotate 3-D volumetric grayscale image
imtranslateTranslate image 转换图像
impyramidImage pyramid reduction and expansion 对图像进行成倍的放大与缩小

3. 图像增强

3.1 目的

3.2 空域内的图像增强

调整灰度图像的明暗对比度

  • 通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图
  • 有时并不需要图像的直方图具有整体的均匀分布(均衡化),而希望直方图与规定要求的直方图一致,这就是直方图规定化。可以增强特定灰度级分布范围内的图像

3.3 图像的统计特性

3.4 绘制灰度图像等高线

3.5 空域滤波

对图像中每个像素为中心的邻域进行一系列的运算,然后将得到的结果代替原来的像素值。

3.6 频域滤波

频域增强:将图像经傅里叶变换,从空间域变换到频率域fft2(),然后在频域内进行处理,最后再反变换回空间域ifft2()

补充 图像滤波

修正或增强图像,包括平滑、锐化和边缘增强。
O ( i , j ) = ∑ m , n I ( i + m , j + n ) ∗ K ( m , n ) O(i,j) = \sum_{m,n}^{ }I(i+m,j+n)*K(m,n) O(i,j)=m,n∑​I(i+m,j+n)∗K(m,n)

4 图像复原

沿图像退化逆过程进行处理,达到抑制噪声,改善图像质量的目的。

4.1 噪声模型

4.2 空域滤波复原方法

4.3 图像复原方法

5 图像分割技术

5.1 边缘分割技术

利用物体和背景在某种图像特性上的差异

5.2 阈值分割

5.3 区域分割

6 图像变换技术

图像某些性质在空间域很难获得,故将图像从空间域变换到变换域处理后再反变换。

6.1 Radon变换和反变换radon()&iradon()

获取平移旋转投影数据

6.2 傅里叶变换和反变换fft()&ifft()

从空间域转换为频率域,可进行图像分析、增强和压缩。
傅里叶变换物理意义:将图像的灰度分布函数变换为图像的频率分布函数
fft():一维离散傅里叶变换
fft2():二维离散傅里叶变换=fft(fft())
fftshift():平移

6.3 离散余弦变换和反变换

以一组不同频率和幅值的余弦函数和来近似一幅图像,实际上是傳立叶变换的实数部分
对于一幅图像,其大部分可视化信息都集中在少数的变换系数上。因此,离散余弦变换经常用于图像压缩,例如国际压缩标准的JPEG格式
图像块操作:blkproc()

6.4 其他变换

Hadamard变换、Hough变换(图像识别几何形状)以及图像的小波变换等

7 彩色图像处理

标签:入门,变换,滤波,像素,图像处理,灰度,Matlab,图像,&-
来源: https://blog.csdn.net/yusuhuayu/article/details/115392583