理解并实现OpenCV中的图像平滑技术

导读

图像模糊(也称为图像平滑)是计算机视觉和图像处理中的基本操作之一。模糊图像通常是噪声减少、边缘检测和特征提取等应用的第一步。在本博客中,我们将重点介绍如何使用Python中的OpenCV库应用多种模糊技术。

理论概述:

基本平滑模式

1. 均值模糊:

这是最简单的模糊方法之一。它通过将图像与标准化的均值滤波器进行卷积来工作。它简单地取出内核区域中所有像素的平均值,并用这个平均值替换中心元素。可以使用cv2.blur()或cv2.boxFilter()函数来完成。

2. 高斯模糊:

与均值方法不同,高斯模糊使用高斯滤波器而不是均值滤波器。该滤波器仅与空间有关,邻近像素的贡献通过高斯函数进行加权。这样可以得到一种自然的模糊效果。OpenCV中使用cv2.GaussianBlur()函数实现高斯模糊。

3. 中值模糊:

中值模糊将每个像素的值替换为内核区域中强度的中值。中值通过对窗口中的所有像素值进行排序并用中间像素值替换来计算。这种技术对于去除椒盐噪声很有效。使用cv2.medianBlur()函数来实现这种方法。

4. 双边滤波:

双边滤波更复杂,同时考虑了空间和强度差异。中心元素被附近像素的加权平均值替换,这样可以保留边缘,因为权重取决于像素强度差异。在OpenCV中使用的函数是cv2.bilateralFilter()。

python程序实现

python代码

python 复制代码
# -*- coding: utf-8 -*-
"""
Created on Fri Feb 16 21:32:26 2024

@author: 李立宗

公众号:计算机视觉之光

知识星球:计算机视觉之光

"""

import cv2
import numpy as np

# 加载图像
image = cv2.imread('lenaNoise.png')
cv2.imshow('original', image)

# 均值模糊
avg_blurred = cv2.blur(image, (5, 5))
cv2.imshow('blur', avg_blurred)

# 高斯模糊
gaussian_blurred = cv2.GaussianBlur(image, (5, 5), 0)
cv2.imshow('GaussianBlur', gaussian_blurred)

# 中值模糊
median_blurred = cv2.medianBlur(image, 5)
cv2.imshow('medianBlur', median_blurred)

# 双边滤波
bilateral_filtered = cv2.bilateralFilter(image, 9, 75, 75)
cv2.imshow('bilateralFilter', bilateral_filtered)

# 等待按键按下并销毁所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

输出图像

结论

模糊是图像处理中简单但强大的技术,有助于去除噪音、降低细节或为进一步的处理(如边缘检测)做准备。应用哪种模糊取决于图像中具体的要求和噪声的性质。

在本博客文章中,我们回顾了OpenCV中最常见的一些模糊技术,并提供了实现它们的Python代码。准确理解并应用这些方法可以显著提高计算机视觉项目中的图像分析结果。

学习参考

OpenCV中的边缘检测技术及实现

参考文献

1、OpenCV轻松入门

李立宗,OpenCV轻松入门,电子工业出版社,2023

2、计算机视觉40例

李立宗,计算机视觉40例,电子工业出版社,2022

相关推荐
王中阳Go几秒前
Go 后端转 AI:非科班怎么补?一张 3 列路线表(可保存)
开发语言·人工智能·后端·python·golang·大语言模型
IT_陈寒3 分钟前
Vite热更新失效?你可能也踩了这个坑
前端·人工智能·后端
桃西西呀14 分钟前
LangGraph4j之一:客服请求分诊既要循环又要分流,我用 LangGraph4j 把控制流抽成了数据
人工智能·llm·ai编程
leizhen1984080936 分钟前
中国 AI 反超的临界点,与世界格局正在发生的三重变化(漫画)
人工智能
Rosanci41 分钟前
AI 写完不等于能用:以“验收标准 + 仓库检查”为中心的 AI 编程质控流程
人工智能·ai 编程
众链网络1 小时前
Agent 的成本大头不在“写“,在“判断“:拆解专用决策模型的三层架构
java·开发语言·人工智能·微服务
guhunyihan1 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
林伽一1 小时前
林伽一 · AI科技周报 | 2026年10月第2周
人工智能·科技
卿卿的产品经理日记1 小时前
【AI产品经理实战】Day 35|从“沉迷工具“到回归 AI 底层:Skill 收官、系统复盘与下一个 13 天
人工智能·学习·产品经理
AI闲人1 小时前
Jev 们不缺判断力,缺的是你的标准
人工智能·数字化·企业ai落地·语义层