图像
滤波名 | 简介 | 作用 | 优点 | 缺点 | python代码示例 | 是否线性 |
---|---|---|---|---|---|---|
均值滤波 | 对于每一个像素,用周围像素的平均值代替该像素的值 | 去除噪声 | 简单实用,计算量小 | 模糊边缘和细节,没有考虑像素之间的相关性 | cv2.blur(img, (5, 5)) | 是 |
中值滤波 | 对于每一个像素,用周围像素的中值代替该像素的值 | 去除噪声 | 对于椒盐噪声特别有效,不会模糊边缘 | 算法复杂,计算量大 | cv2.medianBlur(img, 5) | 否 |
双边滤波 | 对于每一个像素,计算出像素与周围像素的权重,用周围像素乘以权重的和代替该像素的值 | 去除噪声,保留边缘和细节 | 效果优秀,能够在保持边缘和细节的同时 | 去除噪声算法复杂,计算量大 | cv2.bilateralFilter(img, 9, 75, 75) | 否 |
高斯滤波 | 对于每一个像素,用周围像素的加权平均值代替该像素的值,权重使用高斯分布计算 | 去除噪声 | 简单实用,计算量小 | 模糊边缘和 | cv2.GaussianBlur(img, kernel_size, 0) | 是 |
音频
滤波名 | 简介 | 线性/非线性 | 作用 | 优点 | 缺点 | python代码示例 |
---|---|---|---|---|---|---|
低通滤波 | 过滤高频噪声 | 线性 | 减少高频噪声 | 简单易实现,能够有效减少高频噪声 | 可能会消除重要的高频信息 | scipy.signal.butter(3, 0.05, ‘low’, analog=False, output=‘sos’) |
高通滤波 | 过滤低频噪声 | 线性 | 减少低频噪声 | 简单易实现,能够有效减少低频噪声 | 可能会消除重要的低频信息 | scipy.signal.butter(3, 0.05, ‘high’, analog=False, output=‘sos’) |
带通滤波 | 过滤除中频之外的频率信息 | 线性 | 减少除中频之外的噪声 | 简单易实现,能够有效减少除中频之外的噪声 | 可能会消除重要的频率信息 | scipy.signal.butter(3, [0.05, 0.1], ‘band’, analog=False, output=‘sos’) |
均值滤波 | 计算周围样本的平均值 | 非线性 | 平滑信号,减少噪声 | 简单易实现,能够有效减少噪声 | 可能会消除重要的信号特征 | scipy.signal.convolve(signal, np.ones(window_size) / window_size, mode=‘same’) |
高斯滤波 | 利用高斯分布对信号进行平滑 | 非线性 | 平滑信号 |
自然语言文本
滤波名 | 简介 | 线性/非线性 | 作用 | 优点 | 缺点 | Python 代码示例 |
---|---|---|---|---|---|---|
词干提取 | 将单词还原到它的基本形式 | 非线性 | 文本处理 | 简化文本内容,提取关键词 | 损失信息 | from nltk.stem import PorterStemmer; stemmer = PorterStemmer(); stemmer.stem("running") |
停用词过滤 | 去除文本中出现频率很高但对文本意义没有贡献的词语 | 非线性 | 文本处理 | 缩小文本范围,提升文本质量 | 损失信息 | from nltk.corpus import stopwords; stopwords.words("english") |
文本长度滤波 | 去除文本长度超过限制的文本 | 非线性 | 文本处理 | 缩小文本范围,提升文本质量 | 损失信息 | texts = [text for text in texts if len(text) <= 100] |