常用图像滤波及色彩调节操作(Opencv)

1. 常用滤波/模糊操作

py 复制代码
import cv2
import numpy as np
import matplotlib.pyplot as plot

img = cv2.imread("tmp.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_g = cv2.GaussianBlur(img, (7,7), 0)
img_mb = cv2.medianBlur(img, ksize=7) #中指滤波
img_bm = cv2.blur(img, ksize=(7,7)) #均值滤波
img_bf = cv2.boxFilter(img, ddepth=-1, ksize=(7,7)) #方框滤波
img_bfr = cv2.bilateralFilter(img, 7, 100, 100) #双边滤波
self_kernel = np.array([[0,-1,0],[-1,7,-1],[0,-1,0]]) #自定义锐化核
img_f = cv2.filter2D(img, ddepth=-1, kernel=self_kernel)
img_eh = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
img_eh = cv2.equalizeHist(img_eh)

plot.figure(figsize=(12,8));
plot.subplot(2,4,1)
plot.title('source image')
plot.imshow(img)
plot.subplot(2,4,2)
plot.title('Gaussian Blur')
plot.imshow(img_g)
plot.subplot(2,4,3)
plot.title('Mean blur')
plot.imshow(img_bm)
plot.subplot(2,4,4)
plot.title('Median Blur')
plot.imshow(img_mb)
plot.subplot(2,4,5)
plot.title('box filter')
plot.imshow(img_bf)
plot.subplot(2,4,6)
plot.title('bilateral Filter')
plot.imshow(img_bfr)
plot.subplot(2,4,7)
plot.title('self filter')
plot.imshow(img_f)
plot.subplot(2,4,8)
plot.title('equalize Hist')
plot.imshow(img_eh)

plot.show()

2. 常用色彩调节操作

py 复制代码
import cv2
import numpy as np
import matplotlib.pyplot as plot

img = cv2.imread("tmp.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
noise = np.random.randint(0, 50, img.shape[:3], dtype=np.uint8) #增加随机噪声
img_ni = cv2.add(img, noise)
img_bi = cv2.add(img, np.array([50])) #增加亮度
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
(h,s,v) = cv2.split(img_hsv)
s1 = np.clip(s+50, 0, 255) #增加饱和度
img_si = cv2.merge([h,s1,v])
img_si = cv2.cvtColor(img_si, cv2.COLOR_HSV2RGB)
v1 = np.clip(v+50, 0, 255) #增加亮度
img_sb = cv2.merge([h,s,v1])
img_sb = cv2.cvtColor(img_sb, cv2.COLOR_HSV2RGB)

plot.figure(figsize=(15,3));
plot.subplot(1,5,1)
plot.title('source image')
plot.imshow(img)
plot.subplot(1,5,2)
plot.title('add noise')
plot.imshow(img_ni)
plot.subplot(1,5,3)
plot.title('RGB add bright')
plot.imshow(img_bi)
plot.subplot(1,5,4)
plot.title('add saturation')
plot.imshow(img_si)
plot.subplot(1,5,5)
plot.title('HSV add bright')
plot.imshow(img_sb)

plot.show()

3. 滤波函数说明

函数名 作用描述 典型应用场景 核心特点
cv2.blur() 均值滤波(归一化方框滤波) 快速简单去噪、均匀模糊 ✅ 计算快 ❌ 边缘模糊明显
cv2.boxFilter() 方框滤波(可非归一化) 自定义权重模糊、非归一化计算 ✅ 支持非归一化(可能溢出) ❌ 需手动控制
cv2.GaussianBlur() 高斯滤波(正态分布权重) 消除高斯噪声、自然平滑 ✅ 保留边缘较好 ❌ 计算量较大
cv2.medianBlur() 中值滤波(取像素中位数) 去除椒盐噪声、脉冲噪声 ✅ 保护边缘 ❌ 仅支持奇数核大小
cv2.bilateralFilter() 双边滤波(空间+颜色权重) 保边去噪、美颜处理 ✅ 保留细节 ❌ 计算复杂度极高
cv2.filter2D() 自定义卷积核滤波 特殊滤波效果(锐化、边缘检测等) ✅ 高度灵活 ❌ 需手动设计卷积核

系列文章:

  1. opencv常用边缘检测算子示例
  2. 图像颜色空间对比(Opencv)
  3. 图像变换方式区别对比(Opencv)
  4. 常用图像滤波及色彩调节操作(Opencv)
  5. 图像形态学操作对比(Opencv)
相关推荐
会飞锦鲤10 小时前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm
李帅朋14 小时前
INP-Former阅读笔记
笔记·深度学习·计算机视觉
ZhengEnCi1 天前
一句话定位图片中目标最准的模型是哪个:2026 视觉定位 SOTA 全面评测与选型指南
计算机视觉
小豆庄2 天前
测试视频里的人脸车牌敏感信息自动化脱敏方案
计算机视觉·目标跟踪·ffmpeg·音视频·边缘计算·视频·敏捷流程
LUCIALEE2 天前
训练越久越差:两个无人机小样本,把 3DGS 正射 TDOM 的边界跑出来了
计算机视觉
陈嘿萌2 天前
ECCV 2026 | CausalDrive:澳门大学×小米汽车,面向自动驾驶的实时因果世界模型
图像处理·人工智能·深度学习·计算机视觉·自动驾驶·学术研究与理论基础
song150265372983 天前
小型零部件外观检测难?AI机器视觉检测设备,适配全行业小件质检
人工智能·计算机视觉·视觉检测
xsd202411183 天前
AI 智能美甲推荐系统技术全解析
人工智能·计算机视觉
原子延迟3 天前
批量压缩视频会变大?HandBrake等3款(2026)
图像处理·人工智能·计算机视觉·音视频
apple_692658853 天前
基于 Qwen-Image-2.1 的人物替换 LoRA 模型及部署工作流 人物替换的效果 吊打闭源
人工智能·计算机视觉