文章目录
- 前言
- 一、 均值滤波基本原理
- 均值滤波操作步骤:
- 均值滤波c语言实现
- 均值滤波实测
- 均值滤波优缺点
- 均值滤波应用场景
- 二、 中值滤波基本原理
- 中值滤波c语言实现
- 中值滤波实测
- 中值滤波优缺点
- 中值滤波应用场景
- 总结
前言
- 均值滤波(Mean Filtering 或 Averaging Filtering)是一种经典的线性平滑滤波技术,广泛应用于图像处理和信号处理中,主要用于去除噪声、平滑数据。
- 中值滤波(Median Filtering)是一种非线性的信号处理技术,主要用于去除信号或图像中的噪声,特别是椒盐噪声(Salt and Pepper Noise)。它通过用邻域内像素值的中值来代替当前像素点的值,从而达到平滑图像、抑制噪声的目的。
一、 均值滤波基本原理
- 均值滤波的核心思想是:用一个滑动窗口(滤波核)内所有像素的平均值来代替当前像素的值。
均值滤波操作步骤:
- 选择一个滤波窗口(如 3×3、5×5),通常是奇数尺寸的方形窗口。
- 将窗口中心对准当前像素。
- 计算窗口内所有像素值的算术平均值。
- 将该平均值作为中心像素的新值。
- 示例(3×3 均值滤波)
[10 20 15]
[25 180 30] ← 中心像素 180 可能是噪声
[12 22 16]
计算窗口内所有像素的平均值:约等于37
将中心像素 180 替换为 37,从而抑制了噪声。
均值滤波c语言实现
void meanFilter(unsigned char *inImage, unsigned int width,unsigned int height, unsigned char *outImage)
{unsigned int i, j, value;int l, n;for (i = 0; i < height; i++) {for (j = 0; j < width; j++) {if (i == 0 || j == 0 || i == height - 1 || j == width - 1)outImage[i * width + j] = 0;