(笔记六)利用opencv进行图像滤波

(1)自定义卷积核图像滤波

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv


img_path = r"D:\data\test6-6.png"
img = cv.imread(img_path)

# 图像滤波
ker = np.ones((6, 6), np.float32)/36  # 构建滤波器(卷积层)
img1 = cv.filter2D(img, -1, ker)  # cv.filter2D(原图,深度,滤波器)

(2)函数卷积核图像滤波

  • 1、均值滤波和高斯模糊
python 复制代码
# 图像平滑
# 1、均值平滑
# 当卷积核大小与上面的图像滤波的滤波器一样时,其结果是一样的
img2 = cv.blur(img, (11, 11))  # cv.blur(原图,卷积核大小)
# img2 = cv.boxFilter(img, -1, (5, 5), normalize=False) # 与上述的结果相同,只是不采用标准化框

# 2、高斯模糊
# 单独指定x标准差,则y标准差等于x,若是两个都为0,则根据kszie进行计算
img3 = cv.GaussianBlur(img, (25, 25), 3)  # cv.GaussianBlur(原图,卷积核大小,x标准差==y标准差)
# 卷积核孔径的大小就是卷积核的高度,一般采用奇数
# 当高斯标准差sigma为负时,采用公式sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8
# ker1 = cv.getGaussianKernel(5, 0)  # getGaussianKernel(卷积核孔径的大小,高斯标准差)
# img3 = cv.filter2D(img, -1, ker1)  # 利用filter2D进行高斯平滑
  • 2、中值滤波
python 复制代码
# 3、中值平滑
# 对很多椒盐噪声很管用
median_img = cv.imread(r"D:\data\test6.png")
img4 = cv.medianBlur(median_img, 5)  # cv.medianBlur(原图,卷积核孔径大小)
  • 3、双边滤波
python 复制代码
# 4、双边滤波
# 适用于保存边缘,模糊局部
bli_imgg = cv.imread(r"D:\data\test6-6-6.png")
bli_img = cv.cvtColor(bli_imgg, cv.COLOR_BGR2RGB)
img5 = cv.bilateralFilter(bli_img, 30, 120, 120)
相关推荐
遇到困难睡大觉哈哈7 小时前
Harmony os——ArkTS 语言笔记(四):类、对象、接口和抽象类
java·笔记·spring·harmonyos·鸿蒙
程序员东岸7 小时前
《数据结构——排序(中)》选择与交换的艺术:从直接选择到堆排序的性能跃迁
数据结构·笔记·算法·leetcode·排序算法
Ccjf酷儿8 小时前
操作系统 蒋炎岩 4.数学视角的操作系统
笔记
yinchao1638 小时前
EMC设计经验-笔记
笔记
黑客思维者9 小时前
LLM底层原理学习笔记:Adam优化器为何能征服巨型模型成为深度学习的“速度与稳定之王”
笔记·深度学习·学习·llm·adam优化器
松☆9 小时前
Flutter + OpenHarmony 实战:构建离线优先的跨设备笔记应用
笔记·flutter
kk哥88999 小时前
Swift底层原理学习笔记
笔记·学习·swift
Vince丶11 小时前
UE DirectExcel使用笔记
笔记·ue5
AA陈超11 小时前
Lyra学习004:GameFeatureData分析
c++·笔记·学习·ue5·虚幻引擎
阿恩.77011 小时前
2026年1月最新计算机、人工智能、经济管理国际会议:选对会议 = 论文成功率翻倍
人工智能·经验分享·笔记·计算机网络·金融·区块链