机器视觉基础—高斯滤波
创作时间:
作者:
@小白创作中心
机器视觉基础—高斯滤波
引用
CSDN
1.
https://blog.csdn.net/weixin_46167190/article/details/146697973
高斯滤波是机器视觉和图像处理中的重要技术,主要用于图像平滑和噪声去除。本文将详细介绍高斯滤波的基本原理,并通过代码示例展示如何使用OpenCV库实现高斯滤波。
机器视觉基础—图像滤波
高斯滤波
高斯核的权重值从中心向边缘按高斯函数衰减:中心像素权重最大,周围像素权重随距离增加而减小。
3x3大小的卷积核的过程:如上所示最后执行一次归一化的操作即可。这里归一化之后得到的权重值,3x3区域大小的部分就是我们的高斯核(3x3大小的高斯核)将其用作卷积核即可。
之后的过程就是使用这个卷积核来进行卷积的处理和深度学习中的卷积的运算是保持一致的情况。
这种特性使得高斯滤波能保留更多低频信息(平滑区域),同时减少高频噪声。
import cv2
import matplotlib.pyplot as plt
def show_reslt(img):
plt.imshow(img)
plt.show()
img = cv2.imread('../exp/occ_result/trackerobj/2/15.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
show_reslt(img)
img = cv2.GaussianBlur(img, (5, 5), 5000)
show_reslt(img)
自定义的形式
下面使用自定义滤波的形式生成同样的结果,代码如下所示。
dst = cv2.filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]])
输入参数:
- src:输入图像(灰度图或彩色图,支持 uint8、float32 等格式)。
- ddepth:输出图像的深度(如 -1 表示与输入相同,cv2.CV_64F 允许负值输出)。
- kernel:卷积核(单通道浮点型矩阵,如 np.float32)。
可选参数:
- anchor:核的锚点位置(默认 (-1, -1) 表示核中心)。
- delta:卷积后添加到每个像素的偏移值(默认为 0)。
- borderType:边界填充方式(如 cv2.BORDER_REFLECT、cv2.BORDER_CONSTANT 等)。
import cv2
import matplotlib.pyplot as plt
def show_reslt(img):
plt.imshow(img)
plt.show()
img = cv2.imread('../exp/occ_result/trackerobj/2/15.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
show_reslt(img)
# 定义高斯核
# 定义参数
ksize = 5 # 整数,非元组
sigma = 500
# 生成一维高斯核
gaussian_1D = cv2.getGaussianKernel(ksize, sigma, cv2.CV_32F)
# 生成二维高斯核
gaussian_2D = gaussian_1D @ gaussian_1D.T # 外积
# 应用滤波
blurred = cv2.filter2D(img, -1, gaussian_2D)
show_reslt(blurred)
通过掩码的方式在指定的区域上进行高斯滤波
np.where(mask, blurred, img) 会根据掩模 mask 的值选择对应的像素:
- 如果 mask 中的值为 1,则选择 blurred 中的像素。
- 如果 mask 中的值为 0,则选择 img 中的像素。
这样可以将目标区域替换为高斯滤波后的结果,而其他区域保持不变。
import numpy as np
import cv2
import matplotlib.pyplot as plt
def show_reslt(img):
plt.imshow(img)
plt.show()
img = cv2.imread('../exp/occ_result/trackerobj/2/15.png')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
show_reslt(img)
mask = np.zeros_like(img)
mask[50:150, 0:100] = 1 # 定义目标区域
blurred = cv2.GaussianBlur(img, (5,5), 500,None,10000)
result = np.where(mask, blurred, img) # 合并结果
show_reslt(result)
这里经过高斯滤波的处理之后,黑色以外的一些点即为模块处理的部分。
对于离散的点进行高斯滤波的处理
如果把遮挡区域的散点使用高斯滤波进行一下区域的扩散,然后在和之前的做差背景中的一写点应该可以看作是遮挡区域。
热门推荐
经济平稳增长,KDJ指标助你捕捉市场机会
六翼天使:基督教中的神秘守护者
一文读懂威科夫理论:供需分析助力股市投资决策
哈里斯竞选总统,印度祖籍地沸腾
王子文的演技细节:如何塑造《欢乐颂》中的曲筱绡
王子文:从“曲妖精”到实力派的演艺之路
一条街尝遍全国美食,一条街专做新疆味道:乌鲁木齐两大美食街全攻略
最新!乌鲁木齐十大必吃餐厅榜单出炉,这些美食不容错过
新疆大盘鸡与纳仁:在家就能做地道西域美食
烤全羊、大盘鸡、手抓饭:乌鲁木齐三道菜里的多民族风情
数据揭秘:河南成大盘鸡最大“根据地”,门店数量全国第一
东南大学延长研究生学制至3年,你准备好了吗?
年轻人如何告别颈椎痛?
拍好抖音视频的六个关键步骤:构思、构图到互动
冰箱压缩机持续运行故障排查:九种常见原因与解决方案
自驾归来必做的六项检查,附山区驾驶安全指南
秋摄丽水:从古村落到梯田,4天自驾摄影全攻略
200公里穿越浙南秘境:丽水自驾游完全指南
申留真新造型引争议:暴露还是艺术?一场关于审美与文化的讨论
澧县中医医院专家:春节这样预防肛肠疾病
2023年中国新能源车销量近千万,美国车企转型步伐滞后
世行最新报告:2024年全球经济增速上调至2.6%,但仍低于疫前水平
中美消费模式大不同:中国电商集中度远超美国,加速出海寻新机
2014年OTG技术普及,改变了什么?
智能手机和平板电脑的OTG黑科技,你get了吗?
从《杨三姐告状》到《花为媒》:中国评剧院70年经典剧目传承
买莲藕时,挑哪一节最好?菜农不小心说漏嘴,看完别再买错了!
从京剧学徒到“评剧女王”,新凤霞的艺术人生
武陵源:天子山御笔峰见证土家族千年文化
张家界三大必游景点:天门山、袁家界、黄龙洞全攻略