记录一下自己学习的图像处理的基础知识。
一、图像的文件格式以及常用的图像空间
1、文件格式
常见的图像文件格式有 jpg, png, bmp, gif
(1)jpg:有损压缩算法,大幅减小文件大小,便于存储和传输,兼容性强;但是会压缩画质,背景不可透明。
(2)png:无损压缩算法,能够比较好的保留原始图像质量,可以保存透明背景;但是文件较大,不利于传输。
(3)bmp:不进行压缩或使用简单的RLE压缩,不会损失图像质量;文件很大,需要占用大量的存储空间,兼容性有限,背景不可透明。
(4)gif:支持动画效果,兼容性强;但是只能支持256种颜色,研所会损失图像质量。
2、图像空间
rgb:红绿蓝三个颜色通道,是最常用的空间特征。
(255,255,255):白色
(0,0,0):黑色
(255,0,0):纯红色
(255,255,0):纯黄色
hsv:色度(使用360度来表示颜色,如下图)、饱和度(颜色接近光谱色的程度)、明度(颜色的明亮程度)
二、图像预处理
1、图像增强:去噪、锐化
(1)去噪:可以使用图像平滑的方式来达到去噪的作用。
这里主要记录了空间域图像平滑技术,对图像进行平滑处理的时候,需要一个滤波器,对每个像素点一定范围内的像素点进行计算。滤波又分为线性滤波和非线性滤波。
滤波类型 | 定义 |
线性滤波 | 基于线性运算,将图像中的每一个像素与周围的像素按照一定的权重进行加权求和来生成新的像素值(原理和卷积核是一样的) |
非线性滤波 | 基于非线性运算,比如说中值滤波,将一个像素点和周围的像素点放在一起,取中值作为新的像素点 |
两种滤波性质的方法如下:
滤波类型 | 方法 |
线性滤波 | 均值滤波:固定滤波器窗口大小,计算该窗口内所有像素点的均值作为新的像素点 高斯滤波:卷积核基于高斯函数产生,距离中心像素越近的像素点权重越大,去除噪音的同时能够保留图像的边缘和细节信息。 Sobel滤波:主要用于检测图像的边缘,主要通过计算中心像素与其临近像素在水平上或者垂直上的差值来确定边缘的强度。 |
非线性滤波 | 中值滤波:将一个像素点和周围的像素点放在一起,取中值作为新的像素点。 双边滤波:考虑像素的空间距离和灰度距离,与中心像素灰度值较大的相邻像素,权重低;与中心像素灰度值接近且空间位置靠近的像素,权重高。 形态学滤波:膨胀和腐蚀。对于每个像素,如果结构元素覆盖的区域内所有像素都满足一定条件(如像素值都为 1),则保留该像素,否则将其删除。膨胀则是腐蚀的相反操作,对于每个像素,如果结构元素覆盖的区域内有任何一个像素满足条件,则将该像素设置为满足条件的值。 |
(2)锐化:通过增强梯度来达到锐化的目的
1)梯度:图像的梯度是一个矢量,用于描述图像中像素值的变化速度。在二维图像中,通常将水平方向上和垂直方向上的像素值变化分别表示为两个分量:水平梯度和垂直梯度。
2)计算方式:
a) 一阶差分:分别在水平和垂直的方向上计算中心像素值与左右两边或者是上下两边像素值的差值。
b)梯度算子:Roberts算子、Prewitt 算子、Sobel 算子等。
Roberts算子:基于交叉差分的梯度算法,采用对角线方向相邻两像素之差近似梯 度来检测边缘,对具有陡峭边缘且含噪声少的图像效果较好,但对噪声敏感,定位精度相对较低,计算简单,速度快,可用于一些简单的图像识别、文字图像初步处理。
,
Prewitt 算子:利用3x3邻域内的灰度差来计算梯度,然后将两个方向的梯度幅值相加得到该点的边缘强度。
水平方向上的卷积核为:
垂直上的卷积核为:
Sobel 算子:在上面以及叙述过,这里记录一下Sobel 算子的卷积核:
水平方向上的卷积核为:
垂直方向上的卷积核为:
3)物理应用:
a)边缘检测:一般来说,物体的边缘通常对应着像素值快速变化,因此可以通过梯度的方式来确定图中的边缘位置。
b)纹理分析:纹理丰富的区域,像素值变化频繁,梯度值也会相应较大且分布较为复杂。通过分析梯度的统计特性,如均值、方差、直方图等,可以对图像的纹理特征进行描述和分类,从而实现纹理分析和识别。
c)图像锐化:通过增强图像的梯度信息,来时图像中的边缘和细节更加突出。
4)示例:一般使用梯度的应用过程如下(以使用图像分割为例)
a)图像预处理:首先,使用滤波对图像去噪
b)计算梯度:对每个像素计算水平、垂直或斜梯度
c)阈值化:设定一个背景阈值,当梯度小于这个阈值,判定为背景,当梯度大于这个阈值,判定为前景。
d)分割结果:根据阈值化后的结果,将每个像素分配到相应的物体类别中,从而实现图像分割。