写点什么

Python OpenCV 图片高斯模糊

发布于: 2021 年 04 月 11 日
Python OpenCV 图片高斯模糊

Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。


基础知识铺垫

看到一种说法,解释高斯模糊的比较简单,高斯模糊是带加权的均值模糊。


大概解释如下:


高斯模糊实质上就是一种均值模糊,只是高斯模糊是按照加权平均的,距离越近的点权重越大,距离越远的点权重越小。


通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。


不过阅读起来还是比较费劲的,这种情况,有两种学习方式


第一种,去死磕线性代数,研究卷积算法


第二种,先放一下,因为目前高斯模糊的应用场景,还未完全明确,可以日后用到这部分知识,在进行学习,橡皮擦选择第二种。


高斯模糊在美颜软件上挺常见的,专业图片处理工具也一定有,主要用在磨皮与毛玻璃效果上。


关于高斯模糊,还真找到一篇不错的博客,可以参考(建议在新选项卡打开,对照着学习)。


寻找资料的时候,还发现一个大佬关于高斯模糊的解释,可以参考

函数原型介绍

高斯模糊(Gaussian Blur)

函数原型如下:


dst = cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
复制代码


参数说明:


  1. src:原图像;

  2. ksize: 高斯核的大小,格式为(width, height),其中 width 和 height 可以不同,两者都是正奇数;如果设为 0,则根据 sigma 得到;

  3. sigmaX: X 方向的高斯核标准差;

  4. sigmaY: Y 方向的高斯核标准差,如果 sigmaY 设为 0,则与 sigmaX 相等,如果两者都为 0,则可以根据 ksize 来计算得到;


官方手册查阅


测试代码如下:


import cv2import numpy as npimg = cv2.imread('test.jpg')
# dst = cv2.GaussianBlur(img,ksize=(5,5),sigmaX=0,sigmaY=0)# 创建毛玻璃特效# 参数2:高斯核的宽和高(建议是奇数)# 参数3:x和y轴的标准差dst = cv2.GaussianBlur(img, (5, 5), 0)cv2.imshow('dst', dst)
cv2.waitKey()
复制代码


运行效果与原图对比:



你可以继续修改参数值,高斯核尺寸和标准差越大,处理后的图片越模糊


dst1 = cv2.GaussianBlur(img, (5, 5), 0.5)dst2 = cv2.GaussianBlur(img, (5, 5), 1.5)dst3 = cv2.GaussianBlur(img, (9, 9), 1.5)cv2.imshow('dst1', dst1)cv2.imshow('dst2', dst2)cv2.imshow('dst3', dst3)
复制代码


橡皮擦的小节

本系列博客为学习之旅,部分概念在没有学到,或者必须彻底掌握前,不做扩展学习。保持每天 1 个小时的学习时间即可。


1 个小时又过去了,对 Python OpenCV 相关的知识点,你掌握了吗?


做为初学者,还有很多地方学习的不深入,希望你与我一起坚持下去。


相关阅读


  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧

  2. Python 爬虫小课,精彩 9 讲




如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦 ,近距离接触一个逗趣的互联网高级网虫。博主 ID:梦想橡皮擦,希望大家 点赞 、 评论 、 收藏 。

发布于: 2021 年 04 月 11 日阅读数: 18
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
Python OpenCV 图片高斯模糊