OpenCV 核心算法底层数学原理超详细解析

发布时间:2026/6/30 17:55:04
OpenCV 核心算法底层数学原理超详细解析 OpenCV 核心算法底层数学原理超详细解析前置基础:图像与卷积基础图像在计算机中是二维离散矩阵 \(I(x,y)\),x 列,y 行,单通道灰度值 \(0\sim255\)。卷积(Convolution):所有滤波、边缘检测底层统一操作。 给定卷积核 K,输出像素: \(I_{out}(x,y) = \sum_{i}\sum_{j} K(i,j) \cdot I_{in}(x+i,y+j)\) 核窗口逐像素滑动遍历全图,是图像处理最底层运算。一、图像平滑滤波(降噪)1. 均值滤波 blur原理核内所有权重相等,邻域像素取平均,抹平随机噪声。 以 3×3 核为例: \(K = \frac{1}{9}\begin{bmatrix}111\\111\\111\end{bmatrix}\) \(I_{out}(x,y)=\frac{1}{k^2}\sum_{x',y'\in窗口}I(x',y')\)缺陷同等权重模糊边缘,物体轮廓会严重虚化,只适合轻度均匀噪声。2. 高斯滤波 GaussianBlur数学原理权重服从二维正态高斯分布,距离中心越近权重越高,平滑更自然。 二维高斯函数: \(G(x,y,\sigma)=\frac{1}{2\pi\sigma^2}\exp\left(-\frac{x^2+y^2}{2\sigma^2}\right)\) \(\sigma\) 控制模糊强度,\(\sigma\) 越大越模糊。流程根据 \(\sigma\) 生成归一化高斯核;图像与高斯核卷积;特点线性平滑,是 Canny 边缘检测强制前置降噪步骤。3. 中值滤波 medianBlur原理非线性滤波,无卷积乘法。窗口内所有灰度值排序,取中位数替换中心像素。 例窗口像素:\([255,30,40,50,0]\),排序 \([0,30,40,50,255]\),中位数 40。适用场景椒盐噪声(单点黑白噪点),直接剔除极值噪点,保留边缘优于均值。4. 双边滤波 bilateralFilter双重权重(空间域 + 值域)输出权重 = 空间距离高斯权重 × 像素灰度差高斯权重 \(w(x,y)=w_{space}\cdot w_{range}\)\(w_{space}\):像素坐标远近,距离越远权重越低;\(w_{range}\):像素灰度差值,颜色差距大权重趋近 0;核心效果同色区域平滑,边缘色差大的区域不参与平滑,降噪保边缘,用于美颜。5. 非局部均值 fastNl