小白学python(opencv模糊)

  • 模糊
    • 均值模糊
    • 中值模糊
    • 自定义模糊
    • 高斯模糊
    • 双边模糊

今天稍微学学模糊有关知识,发出来记录以一下。

模糊

#像的模糊是图像处理中比较常用和简单的处理手段之一。那么使用这种手段的原因就是为了给图像进行去噪,便于后面的处理。
#模糊处理的背后的原理其实就是卷积计算。
#单的说,拿一个小方格在图像这个方格上进行滑动,这样我们就可以得到一个新的图像了。
#根据原理的不同,模糊方式有很多种。
#(度娘yyds)

均值模糊

#适用于去随机噪声#均值滤波从字面意思上就是取平均值,也就是黄色小方格上的系数全是1,与黄色窗体覆盖下的像素值相乘,再去除以9(卷积和大小为3*3),得到平均值,赋值给#中心像素。#   它的 缺点是在去噪的同时,不能很好的保留图像细节,因为全用均值代替了。
def blur_demo(image):#均值模糊dst = cv.blur(image,(100,300))# 前一个为水平方向模糊,后一个为竖直方向模糊cv.imshow(" blur_demo",dst)

中值模糊

#适用于去除椒盐噪点(就是小斑点)#字面意思的话,就是取中间的值来代替中心像素。和均值滤波类似,只不过均值滤波是取平均值,中值滤波取中间的那个值。中值滤波可以有效的去除椒盐噪声#(比如说你在清水中,撒点盐,这些就是椒盐噪声。对应到图像上,在一副黑色图像上,有很多小白点,这些就是椒盐噪声)。
#(突然很想吃烧烤。。)
def median_blur_demo(image): #中值模糊det = cv.medianBlur(image,5)cv.imshow("Median_Blur",det)

自定义模糊

适用于图像增强,锐化

def custom_demo(image):   # 自定义模糊kernel = np.ones([5, 5], np.float32)/25 # 保证值不会溢出# kernel = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]], np.float32)/9# kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)    # 该参数起到锐化效果dst = cv.filter2D(image, -1, kernel=kernel) # 第二个参数为目标图像深度,-1则表示和原图像一样cv.imshow("custom_demo", dst)

高斯模糊

#高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,滤波高斯就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
#相对于均值滤波,更好的保留图像的细节。因为高斯函数的特性,会有一定的权重配比。
#**手动加高斯噪音**
def gaussian_noise(image):  # 高斯噪声h, w, c = image.shape   # image.shape[0], 图片垂直尺寸;image.shape[1], 图片水平尺寸;image.shape[2], 图片通道数for row in range(h):for col in range(w):s = np.random.normal(0, 20, 3)  # 产生一个正态分布'''numpy.random.normal(loc=0,scale=1.0,size=shape)参数loc(float):正态分布的均值,对应着这个分布的中心。loc=0说明这一个以Y轴为对称轴的正态分布参数scale(float):正态分布的标准差,对应分布的宽度,scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦参数size(int 或者整数元组):输出的shape,默认为None,这里设置为3,表示输出3个值'''b = image[row, col, 0]  # blue;row高度,col宽度,0表示通道0,蓝色g = image[row, col, 1]  # green;1表示通道1,绿色r = image[row, col, 2]  # redimage[row, col, 0] = clamp(b + s[0])    # 在通道0上加上一个高斯噪声image[row, col, 1] = clamp(g + s[1])    # 在通道1上加上一个高斯噪声image[row, col, 2] = clamp(r + s[2])    # 在通道2上加上一个高斯噪声cv.imshow("gaussian_noise image", image)def clamp(pv):if pv >255:return 255if pv <255:return 0else :return pv**

opencv高斯模糊

gaussian_noise(src) #手动高斯模糊
dst = cv.GaussianBlur(src, (5, 5), 0)  # opencv的高斯模糊API'''
def GaussianBlur(src: Any, ksize: Any, sigmaX: Any, dst: Any = None, sigmaY: Any = None, borderType: Any = None)
src:    输入图片,可以使是任意通道数,该函数对通道是独立处理的
ksize:  高斯内核大小。ksize.width和ksize.height允许不相同但他们必须是正奇数。或者等于0,由参数sigma决定。
sigmaX: 高斯内核在X方向的标准偏差。
sigmaY: 高斯内核在Y方向的标准偏差。如果sigmaY为0,他将和sigmaX的值相同,如果他们都为0,那么他们由ksize.width和ksize.height计算得出。
borderType:用于判断图像边界的模式。
'''


《毛玻璃效果》

双边模糊

#双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。
#双边滤波避免了边缘信息丢失,保留了图像的轮廓不变。
def bi_demo(image):     # 双边模糊dst = cv.bilateralFilter(image, 0, 100, 15)'''def bilateralFilter(src: Any,       # 原图数据d: Any,             # 表示在过滤过程中每个像素邻域的直径范围。如果这个值是非正数,则函数会从第五个参数sigmaSpace计算该值。sigmaColor: Any,    # 颜色空间过滤器的sigma值,这个参数的值越大,表明该像素邻域内有越宽广的颜色会被混合到一起,产生较大的半相等颜色区域。sigmaSpace: Any,    # 坐标空间中滤波器的sigma值,如果该值较大,则意味着越远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色。当d>0时,d指定了邻域大小且与sigmaSpace无关,否则d正比于sigmaSpacedst: Any = None,    # 这里也可以输出图像borderType: Any = None) # 用于推断图像外部像素的某种边界模式'''cv.imshow("bi_demo image", dst)

(百度真滴香)

小白学python(opencv模糊)相关推荐

  1. 小白学python买什么书-书单狗 篇一:小白学Python,到底要看多少书?

    书单狗 篇一:小白学Python,到底要看多少书? 2020-07-06 10:52:23 130点赞 1939收藏 76评论 比起Linux,Python的学习资料真的是浩如烟海,即使对于小白来讲, ...

  2. 从小白到精通python要多久-零基础如何学Python?小白学Python需要多久?

    目前市场上对于Python开发人才的需求与日递增,所以很多人都会选择去学Python.那如果是零基础又该如何学Python呢?小白学Python需要多久呢?下面,小编就与大家来看一下! 零基础的新手应 ...

  3. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  4. 编程小白学python知乎周刊_在知乎上学 Python - 入门篇

    写在前面 本文对知乎上关于Python入门方面的问答.文章.专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间. 这一篇主要针对的是零基础或初学Python,包括 ...

  5. python requests_小白学 Python 爬虫(18):Requests 进阶操作

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  6. python爬虫 小白轻松从0到1_小白学 Python 爬虫(1):开篇

    人生苦短,我用 Python 引言 各位同学大家好,好久不见(可能只有一两天没见:囧)~~~ 先讲一件事情,昨天为啥没更新. emmmmmmmmm,当然是因为加班啦,快到年底了,公司项目比较忙,最近的 ...

  7. logback-spring.xml 文件路径 相对路径_小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. matplotlib plot 分组_小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  9. class参数传入 python_小白学 Python 爬虫(20):Xpath 进阶

    人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...

最新文章

  1. [asp常用代码]文件上传代码
  2. Gartner预测:SD-WAN将取代路由
  3. ubuntu的sudo输入密码时光标不动的问题
  4. 系统描述符类型,段描述符类型和段描述符表
  5. 人活着,就应该对其他人贡献价值
  6. algorithm design manual: 8-19
  7. 系统学习机器学习之增强学习(一)--模型基础
  8. BOOST库介绍(五)——智能指针shared_ptr
  9. 如何在工作中快速成长?阿里资深架构师给工程师的10个简单技巧
  10. android无线充电技术,无线充电Qi通信协议分析,充电qi通信协议
  11. mysql 拼接字符串查询
  12. 实现原理 扫描枪_扫描枪原理
  13. 圆形头像制作,仿QQ做法。
  14. 【比赛回顾】广工大2020级年ACM第一次月赛——Dio的面包工坊
  15. 移动平台端到端低成本解决方案
  16. 关于Excel表格的导入
  17. 计算机打印unknow,系统安装打印机驱动提示unknown device解决方法
  18. Java从入门到放弃-序言
  19. 求解随机规划的情景树,情景规划 scenario 方法
  20. constraint PK_LDBACKUPTEXTINFO primary key (xx) using index tablespace lisi

热门文章

  1. 【MySQL数据库 | 第十二篇】:约束
  2. Python——xlwt的基本用法
  3. 如何把Excel表格转到Word,并保持格式不变?
  4. 问卷工具选择要看哪些方面?
  5. vue-axios的application/x-www-form-urlencod的post请求无法解析参数
  6. 当你消极的时候,缓缓心情。
  7. CMD常见命令的调用
  8. Ajax上传文件(原生JS篇)
  9. ajax实现上传文件的进度,基于Ajax技术实现文件上传带进度条
  10. 占有统治地位的Transformer究竟是什么