灰度数字图像与矩阵
- 灰度图像:一张灰度图像根据其竖直位置(行)与水平位置(列)可以对应于一个二维矩阵,其中为图像的尺寸。而表示的为图像的灰度,图像灰度值通常在数据文件中以
uint8
,即八位无符号整型的整数来表示灰度。0为黑色,255为白色。
- 彩色图像:彩色图像最为常用的存储模式为RGB存储模式,即彩色图像的红、绿、蓝三种颜色分别对应一种亮度(灰度)值。记为
注意:jpg文件为有损压缩,png文件为无损压缩
数字图像基础API
信息获取:函数
info=imfinfo('filename')
可获取灰度或彩色图像文件的基本信息,如假设文件名为mcm1.png
,可见:例如我展示一个图片的信息,结果为:
info =
包含以下字段的 struct:
Filename: 'D:\matlab\AFile\temp\pic\songshu.jpg'
FileModDate: '26-Jul-2020 15:49:11'
FileSize: 720467
Format: 'jpg'
FormatVersion: ''
Width: 1920
Height: 1080
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Progressive'
Comment: {}
Orientation: 1
XResolution: 72
YResolution: 72
ResolutionUnit: 'Inch'
Software: 'Adobe Photoshop CS Windows'
DateTime: '2017:02:26 10:40:49'
DigitalCamera: [1×1 struct]
ExifThumbnail: [1×1 struct]
读取图像:进入图像所在的文件夹,键入
A=imread('filename')
,即可获取灰度或彩色图像的信息,并且将其储存在矩阵A中展示图像:MATLAB函数
imshow(A)
可以弹出Figure并显示图像A
注意:
- 数字图像的默认储存格式
uint8
并不适合进行数值计算。在进行数值计算时,矩阵往往被自动转化成双精度型。因此图示前往往将矩阵强制转换为uint8
型。 - 对双精度型矩阵,直接使用
imshow
默认最小值为0,最大值为1。0~255双精度图像可标准化图示如imshow(A/255)
彩色图像处理
彩色图像的通道分离与图像存储
对于RGB格式的彩色图像矩阵A,B=A(:,:,1)
即可提取彩色图像的红色通道值,其中B将以二维矩阵的形式存储表示
相应API:
imshow(B)
:将会得到对应红色通道的灰度图