Python百日百行代码挑战-day14,opencv笔记(三)

Python百日百行代码挑战-day14,opencv笔记(三)滤波专题

均值滤波

原理:将待处理像素周围x个元素相加再除以x
在这里插入图片描述
中间那个值的计算过程就是右边的式子
r e s u l t = ∑ i , j = 1 n , n a i j n ⋅ n result = \frac{\begin{aligned} \sum_{i,j=1}^{n,n} a_{ij} \end{aligned}}{n\cdot n} result=nni,j=1n,naij

函数:

cv2.blur(img,(kernel))

代码:

img51 = cv2.blur(img5,(5,5))
cv2.imshow("img51",img51)
cv2.waitKey(0)
cv2.destroyAllWindows()

方框滤波

原理和上面那个差不多,后面可以选一个归一化参数,如果是true就除一下所有参与运算的像素,是false的话就不除(以上面那个举例子就是不用除以25了)

函数:

cv2.boxFilter(img,图像深度,(kernel),normalization)

其中img是图像
图像深度通常选择-1,和原图像尺寸一致
kernel就是参与运算的核大小
normalization为True则需要除以宽*高的结果,为False则不需要除

代码:

img51 = cv2.boxFilter(img5,-1,(5,5),0)
cv2.imshow("img51",img51)
cv2.waitKey(0)
cv2.destroyAllWindows()

高斯滤波

原理和第一个差不多,差别在于像素相乘的时候权重的不同,离中心点越近的部分权重较高,远一点的部分权重较低,均值滤波中相当于都乘了1

函数:

cv2.GaussianBlur(img,kernel,sigmaX)

img:图像
kernel:核大小(必须是奇数,要是(2,2)这种就会报错)
sigmaX:控制权重分散的值,通常取0让cv2自己计算,毕竟它是一个成熟的库了
sigmaX为0时,sigma = 0.3*((kernel-1)*0.5-1)+0.8

代码:

img51 = cv2.GaussianBlur(img5,(15,15),0)
cv2.imshow("img51",img51)
cv2.waitKey(0)
cv2.destroyAllWindows()

中值滤波

把周围若干点的像素按大小顺序排列,选择中间那个中位数

函数:

cv2.medianBlur(img,core)

img:待处理图像
core:核的大小,这里只是一个值,不是一个矩阵那样的,注意这里的值必须为奇数

代码:

img51 = cv2.medianBlur(img5,3)
cv2.imshow("img51",img51)
cv2.waitKey(0)
cv2.destroyAllWindows()

防火防盗防诈骗

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值