[图像识别]5.OpenCV的图像平滑

 回顾,上节课你学到了什么?

常见的邻接关系有3种: 4邻接N4(p)、D邻接ND(p)和8邻接N8(p)

根据连通性的定义,有4联通、8联通和m联通三种。

cv.erode(img,kernel,iterations)

cv.dilate(img,kernel,iterations)

cv.morphologyEx(img,op,kernel)

开运算:先腐蚀后膨胀。去除边缘高亮毛细噪声,不影响原来的图像

闭运算:先膨胀后腐蚀。消除中间暗淡孔洞,不影响原来的图像

礼帽(顶帽):原图像与开运算图像之差,高亮显示噪声

黑帽:闭运算结果与原图之差,高亮显示暗淡孔洞

目录

1.图像噪声

椒盐噪声

高斯噪声

2.图像平滑

均值滤波

高斯滤波

 中值滤波

双边滤波

 总结,这节课你学到了什么?


1.图像噪声

图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。噪声的存在严重影响了遥感图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正。有常见有椒盐噪声,高斯噪声等。

椒盐噪声

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

高斯噪声

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。噪声点各种颜色都有,常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。除常用抑制噪声的方法外,对高斯噪声的抑制方法常常采用数理统计方法。

2.图像平滑

从信号角度就是去除高频,保留低频。

根据滤波器不同,分为:均值滤波,高斯滤波,中值滤波,双边滤波。

均值滤波

由一个归一化卷积框完成的。相当于使得中心元素的像素值是周围元素的平均值,使得不会出现突然高的像素噪声,缓慢过渡。
例如,3x3标准化的平均过滤器如下所示:

优点:计算简单,运算快。缺点:去除细节,图像模糊

cv.blur(img,ksize,anchor,borderType)

img:处理图像

ksize:卷积核大小

anchor:锚点,默认(-1,-1)表示卷积核中心

borderType:边界类型

举例

#4.1

import cv2 as cv

pic1 = cv.imread("5.png")
res=cv.blur(pic1,(5,5))
cv.imshow("img",pic1)
cv.imshow("blur",res)
cv.waitKey(0)

 结果

高斯滤波

实质,加权重的卷积核滤波器

二维高斯是构建高斯滤波器的基础,其概率分布函数是二维正态分布:


最高点大小与标准差有关。越接近中心取值越大。

高斯平滑实际上就是设定一个标志差,中心点(0,0)代入二维正态函数中心点求最高值为中心点权重,周围点一样代入坐标求值,最后分别给周围点和中心点赋予不同的权重,总权重归一化后,再加和就是中心点的像素值

优点:对于密集的高斯噪声有很好的处理效果

 cv.GaussianBlur(img,ksize,sigmaX,sigmaY,borderType)

ksize:卷积核大小,注意都为奇数

sigmaX:x方向标准差

sigmaY:y方向标准差,不写默认为0,表示和sigmaX相同

borderType:边界类型

举例

#5.2

import cv2 as cv

pic1 = cv.imread("5.png")
res=cv.GaussianBlur(pic1,(3,3),1 )
cv.imshow("img",pic1)
cv.imshow("GaussianBlur",res)
cv.waitKey(0)

结果

 中值滤波

中值滤波是一种典型的非线性滤波技术,基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值。

优点:’中值滤波对椒盐噪声(有特别高的噪声点)来说尤其有用,因为它不依赖于邻域内那些与典型值差别很大的值。

cv.medianBlur(img,ksize)

ksize:卷积核大小,为integer类型

#4.3

import cv2 as cv

pic1 = cv.imread("5.png")
res=cv.medianBlur(pic1,5)
cv.imshow("img",pic1)
cv.imshow("medianBlur",res)
cv.waitKey(0)

结果

双边滤波

双边滤波(Bilateral filter)是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空域信息和灰度相似性,达到保边去噪的目的。双边滤波器的好处是可以做边缘保存(edge preserving),一般过去用的维纳滤波或者高斯滤波去降噪,都会较明显地模糊边缘,对于高频细节的保护效果并不明。

双边滤波器顾名思义比高斯滤波多了一个高斯方差sigma-d,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波

双边滤波算法原理:

Bilateral Filters(双边滤波算法)原理及实现_Naruto_Q的博客-优快云博客_bilateral filter双边滤波算法原理:双边滤波算法实现:双边滤波算法实例:参考:http://people.csail.mit.edu/sparis/bf/http://blog.youkuaiyun.com/fightingforcv/article/details/52723376http://blog.youkuaiyun.com/mumuhttps://blog.youkuaiyun.com/piaoxuezhong/article/details/78302920

cv.filter2D(img, ddepth, ksize, dst, anchor, delta, borderType)

ddepth:指定输出图像深度,-1表示与src深度保持一致

ksize:卷积内核大小, 需大于零,可以不同,如核大小(4,5)

dst:2D卷积操作后的结果

anchor:锚点;默认值Point(-1,-1)表示锚位于内核中央

delta:在将它们存储在dst中之前,将delta可选值添加到已过滤的像素中,默认为None

borderType:边框模式用于图像外部的像素, 默认边缘像素拷贝

 举例

#4.4

import cv2 as cv
import numpy as np
pic1 = cv.imread("5.png")
res=cv.filter2D(pic1,-1,(4,5))
cv.imshow("img",pic1)
cv.imshow("medianBlur",res)
cv.waitKey(0)

 结果

 总结,这节课你学到了什么?

椒盐噪声

高斯噪声

均值滤波cv.blur(img,ksize,anchor,borderType)

高斯滤波cv.GaussianBlur(img,ksize,sigmaX,sigmaY,borderType)

中值滤波cv.medianBlur(img,ksize)

双边滤波cv.filter2D(img, ddepth, ksize)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ζั͡ ั͡雾 ั͡狼 ั͡✾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值