前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >opencv学习笔记 模糊操作+代码(均值模糊,中值模糊,自定义模糊,锐化)

opencv学习笔记 模糊操作+代码(均值模糊,中值模糊,自定义模糊,锐化)

作者头像
用户2965768
发布2018-08-30 15:36:55
2K0
发布2018-08-30 15:36:55
举报
文章被收录于专栏:wymwym
  • 均值模糊

函数 cv.blur(image,(5,5))

这是一个平滑图片的函数,它将一个区域内所有点的灰度值的平均值作为这个点的灰度值。

像该函数对领域点的灰度值进行权重相加最后设置灰度值,这样的操作又叫卷积,这样的滤波器叫线性滤波器。

  • 中值模糊

函数cv.medianBlur(image,5)

该函数不同于上一个函数,它是非线性滤波器,它是取领域的中值作为当前点的灰度值。

上面函数就是选取了5*5大小的矩阵,必须为奇数

处理有椒盐噪声(就像烧烤撒很多孜然,图片上有很多点)有很好的效果

实际应用较多

该方法在去除脉冲噪声、斑点噪声(speckle noise)、椒盐噪声(salt-and-pepper noise)、图像扫描噪声,的同时又能保留凸图像边缘细节。   中值滤波与均值滤波比较:     优势是,在均值滤波器中,由于噪声成分被放入平均计算中,所以输出受到了噪声的影响;而在中值滤波其中,噪声成分很难选上,所以几乎不会影响到输出。     劣势是,中值滤波花费的时间是均值滤波的5倍以上。   注意:中值滤波虽然可以克服线性滤波器所带来的图像细节模糊,但是在线、尖顶等细节多的图像不宜用中值滤波。

  • 自定义模糊(锐化)
  • 锐化就是突出图像细节或者增强图像被模糊的地方,锐化原理就是细节增强,图像的导数就是图像的细节,随着导数阶数升高,能代表的东西也不同。 (这里好像只到了二阶导数)

​​​​​​​

filter2D():定义为filter2D(src,ddepth,kernel)

  ddepth:深度,输入值为-1时,目标图像和原图像深度保持一致

  kernel: 卷积核(或者是相关核),一个单通道浮点型矩阵

修改kernel矩阵即可实现不同的模糊

代码语言:javascript
复制
# coding=GBK
import cv2 as cv
import numpy as np

def average(image):
	av=cv.blur(image,(1,5))
	cv.imshow("aver",av)
	
	med=cv.medianBlur(image,501)
	cv.imshow("med",med)
	
	ker=np.ones((5,5),np.float32)
	scr1=cv.filter2D(image,-1,ker)
	cv.imshow("zi aver",scr1)
	
	new=np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]],np.float32)
	scr2=cv.filter2D(image,-1,new)
	cv.imshow("rui hua",scr2)
	
 
    
image1=cv.imread("D://2.png")
cv.imshow("yuantu",image1)
average(image1)
cv.waitKey(0)
cv.destroyAllWindows()

效果:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档