1、颜色空间
LAB颜色空间是基于人眼对颜色的感知,可以表示人眼所能感受到的所有颜色。L表示明度,A表示红绿色差,B表示蓝黄色差。L*a*b颜色空间用于计算机色调调整和彩色校正。它独立于设备的彩色模型实现。
HSV (色相hue, 饱和度saturation, 明度value), 也称HSB (B指brightness) 是艺术家们常用的。
HSL (色相hue, 饱和度saturation, 亮度lightness/luminance), 也称HLS 或 HSI (I指intensity) 与 HSV非常相似,仅用亮度(lightness)替代了明度(brightness)。
二者区别在于,一种纯色的明度等于白色的明度,而纯色的亮度等于中度灰的亮度。
YUV家族:YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。是YUV经过缩放和偏移的翻版。
YUV色彩模型来源于RGB模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。 YCbCr模型来源于YUV模型,应用于数字视频。 |
2、仿射变换
平移、缩放、旋转、翻转、错切等操作。
仿射变换(affine transform)与透视变换(perspective transform)在图像还原、图像局部变化处理方面有重要意义。
其计算方法为坐标向量和变换矩阵的乘积,换言之就是矩阵运算。在应用层面,仿射变换是图像基于3个固定顶点的变换。
转加上拉升就是图像仿射变换。
根据变换前后三个点的对应关系来自动求解M。opencv:M=cv2.getAffineTransform(pos1,pos2),其中两个位置就是变换前后的对应位置关系。输 出的就是仿射矩阵M。使用函数cv2.warpAffine()。
透视(投影变换)透视变换是将图片投影到一个新的视平面。
透视变换能保持“直线性”,即原图像里面的直线,经透视变换后仍为直线。
需要的是一个3*3的矩阵。需要变换前后的4个点对应位置。
M = cv2.getPerspectiveTransform(pts1,pts2),或findHomography()求的对应性矩阵M。
通过函数cv2.warpPerspective(img,M,(200,200))。
3、OpenCV
https://blog.csdn.net/weixin_42029090/article/details/80618208
1、Mat - 基本图像容器
2、图像基本操作(Mat操作)
1)滤波器掩码:filter2D(I, K, I.depth(), kern );
2)图像混合(addWeighted函数):addWeighted( src1, alpha, src2, beta, 0.0, dst);
3)点灰度变换:增益 和 偏置 参数来分别控制 对比度 和 亮度 。
double alpha;
int beta;
Mat image = imread( argv[1] );
Mat new_image = Mat::zeros( image.size(), image.type() );
for( int y = 0; y < image.rows; y++ )
{
for( int x = 0; x < image.cols; x++ )
{
for( int c = 0; c < 3; c++ )
{
new_image.at(y,x)[c] = saturate_cast( alpha*( image.at(y,x)[c] ) + beta );
}
}
}
4)离散傅立叶变换:空间域(spatial domain)到频域(frequency domain)值。
5)基本绘图
6)随机数发生器
3、图像平滑处理
1)归一化块滤波器 (Normalized Box Filter)
blur( src, //输入图像
dst, //输出图像
Size( i, i ), //定义内核大小( w 像素宽度, h 像素高度)
Point(-1,-1)) //指定锚点位置(被平滑点), 如果是负值,取核的中心为锚点。
2)高斯滤波器 (Gaussian Filter)
GaussianBlur( src, //输入图像
dst, //输出图像
Size( i, i ), //定义内核的大小(需要考虑的邻域范围)。 w 和 h 必须是正奇数,否则将使用 和 参数来计算内核大小。
0, //: x 方向标准方差, 如果是 0 则 使用内核大小计算得到。
0 ) //: y 方向标准方差, 如果是 0 则 使用内核大小计算得到。
3)中值滤波器 (Median Filter)
medianBlur ( src, //输入图像
dst, //输出图像
i ); //内核大小 (只需一个值,因为我们使用正方形窗口),必须为奇数。
4)双边滤波 (Bilateral Filter)
bilateralFilter ( src, //输入图像
dst, //输出图像
i, //像素的邻域直径
i*2, //: 颜色空间的标准方差
i/2 ); //: 坐标空间的标准方差(像素单位)
4、形态学处理
形态学操作就是基于形状的一系列图像处理操作。最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation)。 他们的运用广泛:
- 消除噪声
- 分割(isolate)独立的图像元素,以及连接(join)相邻的元素。
- 寻找图像中的明显的极大值区域或极小值区域。
腐蚀(Erosion)将图像 A 与任意形状的内核 B(通常为正方形或圆形)进行卷积,将内核 B 覆盖区域的最小相素值提取。会导致图像中的亮区开始“收缩”。
膨胀 (Dilation) 将图像 A 与任意形状的内核 B(通常为正方形或圆形)进行卷积,将内核 B 覆盖区域的最大相素值提取。“扩展”。
开运算是通过先对图像腐蚀再膨胀实现的。能够排除小团块物体(假设物体较背景明亮)。
闭运算是通过先对图像膨胀再腐蚀实现的。能够排除小型黑洞(黑色区域)。
膨胀图与腐蚀图之差。能够保留物体的边缘轮廓。