当前位置: 首页 > news >正文

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

1. 常用滤波/模糊操作

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. 常用色彩调节操作

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)

相关文章:

  • 改进神经风格迁移
  • 巧用递归算法:破解编程难题的“秘密武器”
  • MySQL 5.7.30 Linux 二进制安装包详解及安装指南
  • 容器初始化Spring Boot项目原理,即web项目(war)包涉及相关类对比详解
  • Mac 下载 PicGo 的踩坑指南
  • 聊聊Spring AI的Multimodality
  • 汇编获取二进制
  • 穿梭在数字王国:Python进制转换奇遇记
  • JMeter的关联
  • 日常记录-设置新增pve的ct容器
  • 基于HTML + jQuery + Bootstrap 4实现(Web)地铁票价信息生成系统
  • Java中parallelStream并行流使用指南
  • PostgreSQL有类似oracle的move表吗
  • 哈希表系列一>存在重复元素II 存在重复元素I
  • Honeyview:快速浏览各类图像
  • 宝塔Mysql远程连接记录
  • 电感详解:定义、作用、分类与使用要点
  • 高中生学习数据隐私保护的“技术-制度-文化”协同机制研究
  • 说一说 Spring 中的事务
  • AI——seaborn使用
  • 高中生自己做网站/抚顺seo
  • 设计公司官方网站/杭州seo关键词优化公司
  • 武威百度做网站多少钱/最新社会舆情信息
  • 网站建设招标公示/谷歌优化工具
  • 做网站不推广有效果吗/百度小说搜索风云榜
  • 广西教育平台网站建设/竞价推广是什么工作