转灰度图
1. 取b通道(人眼对波长为550nm左右的黄绿色最为敏感)
2. 取b/g/r的平均值gray=(b+g+r)/3,小心数据溢出
3. gray=r*0.299 + g*0.587 + b*0.114,浮点运算比较慢,为了加快速度可以用近似值gray=(r*3 + g*6 + b*1)/10
4. cv2.cvtColor
改变亮度
1. 线性:y=ax+b
2. 分段线性
改变对比度
1. 直方图均衡化
去掉背景
1. 同一场景两幅图像相减
局部图像
1. 二值蒙板与原图相乘
图像大小
1. 上采样:cv2.pyrUp
2. 下采样:cv2.pyrDown
边界填充
cv2.copyMakeBorder
平滑处理
1. 均值滤波:cv2.blur
2. 方波滤波:cv2.boxFilter
降噪
1. 中值滤波:cv2.medianBlur
2. 高斯滤波:cv2.GaussianBlur
3. 双边滤波:cv2.bilateralFilter
4. 去除“叠加性”随机噪音(同一场景的多个图像相加再求平均值)
直方图
横坐标:0-255个灰度等级
纵坐标:灰度值个数
cv2.calcHist(image, 通道, 掩膜(统计哪一部分),指定灰度级(把x轴的255分为几份), 像素取值范围)
直方图均衡化
1. 用来解决灰度值分布不均衡
2. 概率:个数/总数
3. 累计概率:概率相加
4. 函数映射后得到新灰度值:累积概率*255
自适应均衡化
把图像分块,再对每一块均衡化
clahe = cv2.createCLAHE()
clahe.apply(img)
equalizeHist() 正价对比度
傅里叶变换
1. 时域:以时间为参照
2. 频域:频率
3. 高频:变化剧烈的灰度分量,比如边界
4. 低频:变化缓慢的灰度分量
5. 低通滤波器:只保留低频,去掉了高频使图像模糊
6. 高通滤波器:只保留高频,保留细节
7. 傅里叶变换