2.1 引言:如何表示一张图像
空间坐标
像素颜色信息
基本的图像处理可以包含:1)几何处理(在空间坐标上运算)2)代数处理(在像素颜色上)
2.2 代数处理
2.2.1 灰度变换(Gray Level Transformation)
灰度:以纯黑为基调的采样标准,相当于使用一系列介于纯黑和纯白的颜色表达图片。
灰度变换是最简单的图像处理任务,其描述为:输入一张图片,输出灰度转化后的图片。灰度图片只有一个颜色指标,转化过程中逐个像素扫描处理。灰度变换的主要目标是使图像更为清洗。灰度变换是图像增强较为普遍的方法。
灰度转换涉及到对图像像素的亮度调整、对比度调整等。
亮度调整:
亮度通俗理解为图片的明暗程度。将灰度定位[0,255],则像素值越接近0,亮度越低,反之越高。亮度调整的基本方法:
对比度调整:对比度指的是图像最大灰度和最小灰度之间的差值。亮度调整可以使图像整体变亮或者变暗,而对比度可以使图片亮的更亮,暗的更暗。
对比度调整分为三种情形,1)对比度上升 2)对比度下降 3)二值图转换,函数图像如下:
实例图像如下:
突出特定灰度:
目的是增强某些特征。
函数特征为:
实例如下:
位平面分割:
对于一个像素的灰度,是采用8位进行记录,但是这0位所携带的信息等级是不同的,这很容易理解,1000 0000 和 0000 0000 之间的差距远大于1000 0001和1000 0000。将每一位数值组成的图像认为是一个平面,那么一张原始图像可以分为8个平面。下图展示了分割之后的情形,上面是原图,下面是分割后的8个图片。可见在分割后的图片中,最低几位代表的图片基本是杂音,对我们分辨图片基本没有作用。
2.2.2 多图像的代数处理
2.3 基本几何处理
一张图片在几何意义上是一个2D矩阵,包含像素点。
基本的集合处理包含:
水平&垂直翻转(flip)
缩放(resize/zoom in/zoom out)
旋转(rotation)
...
仿射变换(Affine Transform)
透视变换(Perspective Transform)
...
图像变形(Image Warping)
缩放操作处理的基本解决思路有两种:
1)Projection
对小图中的每个像素,计算其在大图中对应的像素,再拷贝小图。问题是大图中的某些像素点会缺失。
2)Lookup
对大图中的每个像素,计算其在小图中对应的像素,再拷贝小图。问题是大图中的有些像素点无法确定其颜色。
对于Lookup的颜色问题,往往采用重采样方法,具体解决方法有:
)最近邻(Nearest Neighbor):找到最近的源像素,然后复制其颜色。
)双线性插值(Bilinear Interpolation):寻找4个相邻的像素点,在水平和竖直方向上分别进行一次插值。
)双三次插值(Bicubic Interpolation):寻找周围16个近邻像素点,根据与目标点的距离计算插值。
仿射变换:
仿射变换是平移、缩放、旋转、翻转、错切的原子操作的合并变换。仿射变换基于一个转换矩阵A,A由三个不共线的点共同决定。这是因为在仿射变换中,我们对于原图像的一个点的表示方法为:
因此可以通过三个点计算以下方程组:
如果获得的点对多于3个:可以计算以下公式
2.4 图像的直方图与图像统计
直方图:统计不同灰度的峰值图像。直方图会忽略原图中的几何信息,但是仍然有一定的参考意义。
2.4.1 直方图均衡
直方图均衡的目的是通过灰度转换等方式,修改图片的灰度分布,使得新图直方图的分量可以占据整个可能的灰度分量,并且与原图有统一的分布。
这主要是为了亮度能够在图片上更好的分布,增强有用部分的对比度并保持整体对比度不变。
2.4.2 直方图匹配
直方图匹配是通过修改当前直方图分布,获得指定形状的直方图。
2.4.3 区域增强
之前的所有方法都是全局的,但如果我们有增强局部部分的需要,就要使用另外的方法。这需要我们基于每个像素附近的灰度分布设计转换函数。
大致的计算过程为:
定义一个正方形(或矩形)邻域,并逐个像素的移动该区域的中心。
计算邻域中点的直方图
获得直方图均衡/特化函数
映射以邻域为中心的像素的灰度级
2.4.4 直方图增强
我们可以使用直接从直方图中获得的一些统计参数,而不是直接使用图像直方图进行增强。
统计参数
平均值:平均灰度的度量
方差:平均对比度的度量
2.5 图像的几何结构
2.5.1 像素邻域
Reference:
https://zhuanlan.zhihu.com/p/44813768
https://blog.csdn.net/weixin_35811044/article/details/85267856