0x01 图像及其操作
1、图像类型
(1)索引图像:是一种把像素值直接作为RGB调色板下标的图像。
(2)灰度图像:是每个像素只有一个采样颜色的图像。
(3)二值图像:是指图像上的每一个像素只有两种可能的取值或灰度等级状态。
(4)RGB图像:图像中每个像素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在像素颜色中的比例关系,组成一个三维数组。
2.图像类型转换
(1)dither:采用抖动的方法,把灰度图像转换为二值图像,或者把RGB图像转换为索引图像;
(2)gray2ind:把灰度图像转换为索引图像;
(3)grayslice:利用给定的灰度阈值,将灰度图像转换为索引图像;
(4)im2bw:利用给定的灰度阈值,将灰度图像、索引图像或RGB图像转换为二值图像;
(5)ind2gray:将索引图像转换为灰度图像;
(6)ind2rgb:将索引图像转换为RGB图像;
(7)mat2gray:通过比例化数据,将矩阵中的数据转换为灰度图像;
(8)rgb2gray:将RGB图像转换为灰度图像;
(9)rgb2ind:将RGB图像转换为索引图像。
3.图像数据
(1)二值图像:logical,元素值为0和1的数组。
(2)索引图像:double,元素值为[1,p]中整数的数组;unit8/unit16,元素值为[0,p-1]中整数的数组。
(3)灰度图像:double,元素值为浮点值的数组,值一般在[0,1]中取值;unit8或
unit16,整型数组,值一般在[0,255]或[0,65535]中取值。
(4)RGB图像:double,m*n*3的数组,元素值为[0,1]中的浮点值;unit8或unit16,m*n*3的数组,元素为[0,255]或[0,65535]中的整型值
4.图像数据处理
(1)读写图像数据:imread()、imwrite();
(2)查询图形文件:imfinfo();
(3)转换图像的存储类型:im2double、
im2unit8、im2unit16。
5.显示图像
(1)图像查看器imtool,图像显示函数imshow.
(2)显示不同类型的图像:索引—imshow(X,map),其他—imshow(I)
(3)特殊显示技巧:动画——immovie(),纹理映射——warp()
0x02 颜色和坐标
1.颜色
(1)屏幕位深
a.8位,一次只能显示256种不同的颜色。
b.16位,红、绿、蓝各有32个深度级别,显示颜色能达到64536种。
c.24位,红、绿、蓝各有256个深度级别,支持16777216种不同的颜色。
d.32位,用24位保存颜色信息,剩下的8位保存透明度数据。
(2)减少图像中的颜色种数
rgb2ind():rgb转二值图像
imapprox():图像颜色近似(抖动)
2.坐标系统
(1)像素坐标:行(c)列(r)表示
(2)空间坐标:行(x)列(y)表示
0x03 图像合成
1.代数运算——加、减、乘、除
imabsdiff:两幅图像的绝对差
imadd:两幅图像的和运算
imcomplement:图像的补运算
imdivide:两幅图像的除运算
imlincomb:计算两幅图像的线性组合
immultiply:两幅图像的积
imsubtract:两幅图像的差
2.逻辑运算——与、或、非、异或
&、|、~、xor
3.关系运算
>、
0x04 空间变换
1.插值
(1)最近邻插值:适用于二值图像
(2)双线性插值:适用于灰度图像和RGB图像
(3)双三次插值:适用于灰度图像和RGB图像
2.图像缩放
imresize([倍数]/[像素大小])
3.旋转图像
imrotate():参数为度数,正数逆时针旋转,负数顺时针旋转
4.图像裁剪
Imcrop():鼠标配合选中裁剪区域
0x05 邻域和块处理
1.滑动邻域操作
conv:卷积和多项式乘法
filter:1维数字滤波器
imfilter:多维图像的ND滤波
nlfilter:通用滑动邻域操作
2.分离块操作
blkproc()
3.列处理
colfilt()
0x06 基于区域的处理
1.对区域进行滤波
roifilt2(): 过滤图像中的关注区域(ROI)
2.填充区域
roifill:填充选中区域
0x07 正交变换
1.离散傅里叶变换(DFT)
fft2():二维快速傅里叶变换
2.离散余弦变换(DCT)
dct2():FFT算法,大输入
dctmtx():DCT变换矩阵,小输入
0x08 数学形态学
膨胀和腐蚀
strel():形态结构要素
1.膨胀图像
imdilate()
2.腐蚀图像
imerode()
bwulterode():最大程度腐蚀
3.组合膨胀和腐蚀
腐蚀和膨胀组合运算
4.开运算
先腐蚀后膨胀
imopen()
bwareaopen()
5.闭运算
先膨胀后腐蚀
imclose()
6.骨架提取
bwmorph()
7.击中击不中
bwhitmiss()
8.顶帽和底帽滤波
顶帽:输入图像和它开运算的插值,可以得到原图中灰度较亮的区域。
底帽:输入图像和它闭运算的插值,可以得到原图中灰度较暗的区域。
imtophat()
imbothat()
0x09 图像分析
1.像素选择
Impixel:可连续选择多个像素,回车后返回像素颜色值(红绿蓝三色)。
2.灰度轮廓
Improfile:拖动鼠标拉一个路径后右击,生成沿此路径的灰度轮廓图。(通过左键单击可以连续选择路径)
3.图形等值线
imcontour():两个参数,前者为输入图像,后者为等值线数
4.图像直方图
imhist()
5.综述统计量
mean2():求灰度图像均值
std2():求灰度图像标准差
corr2():求灰度图像线性或秩相关性
6.区域属性度量
regionprops():两个参数,前者为输入图像,后者为可选属性字符串(20个)
7.分析图象
(1)边缘检测
edge():两个参数,前者为输入图像,后者为分析算法。
算法:Sobel,Prewitt,Roberts,log,zerocross,Canny,approxcanny
(2)边界跟踪
bwboundaries():跟踪二值图像的区域边界
bwtraceboundary():跟踪二值图像中的对象
(3)Hough变换(检测直线)
Hough变换使用直线的参数表示形式来检测直线
hough:hough变换
houghpeaks:指定hough变换峰值
houghlines:提取hough变换线段
0x10 图像增强
1.灰度调整
(1)将灰度调整到一个范围内
imadjust():默认为0-1,也可自定义范围
(2)直方均衡化
histeq():将灰度颜色均衡分布
(3)有限对比适应性直方均衡化
adapthisteq():局部均衡化,直方图服从正态分布
2.去噪
(1)线性滤波
卷积:旋转后卷积核的值与矩阵值乘积的和
相关性:未旋转相关核的值与矩阵乘积的和
Imfilter():两个参数,前者为输入图像,后者为卷积核/相关核矩阵
(2)中值滤波
medfilt2():对邻域的像素值取中值进行滤波
(3)自适应滤波
wiener2():二维自适应去噪滤波
视频链接:
https://edu.csdn.net/course/play/26944/368087?spm=1002.2009.3001.4024