python-opencv 图像平滑(模糊)

import cv2 as cv 
import numpy as np

img = cv.imread("./shangyi.jpg")

#2D卷积
kernel = np.ones((50,50),np.float32)/2500#卷积矩阵
# src:原图像
# ddepth:目标图像的深度,值为-1时默认与原图的深度一致.
# kernel:卷积核(或相当于相关核),单通道浮点矩阵;如果要将不同的内核应用于不同的通道,请使用拆分将图像拆分为单独的颜色平面,然后单独处理它们.
# anchor?:内核的锚点,指示内核中过滤点的相对位置;锚应位于内核中;默认值(-1,-1)表示锚位于内核中心.
# detal?:在将它们存储在dst中之前,将可选值添加到已过滤的像素中。类似于偏移量
dst = cv.filter2D(img,-1,kernel)


#平均模糊
#ksize:模糊大小,值没有限制 type:tuple,这里是(50,50)
res0 = cv.blur(img,(50,50))

#中值模糊  模糊会呈现一种块状感
#ksize:模糊大小,值为大于1的奇数,这里是51
res = cv.medianBlur(img,51)

#高斯模糊  ^_^近视的感觉
#ksize:模糊大小,值为正奇数 type:tuple,这里是(51,51)
#sigmaX:X方向上的高斯核标准差,值为0则会从ksize算出
#sigmaY?:Y方向上的高斯核标准差,不填则引用sigmaX的值,同样值为0则会从ksize算出
res1 = cv.GaussianBlur(img,(51,51),0)


#双边模糊  模糊相近的颜色,超出高度差的颜色被认为非相近颜色从而保留 =>用于边缘保留
#d:取相邻的像素点个数作为模糊标准
#sigmaColor:色彩的影响范围差,在这个数字内表示相近的颜色
#sigmaColor:像素的影响范围差,在这个数字内的都会被高斯模糊的基像素,有d时以d为准
res2 = cv.bilateralFilter(img,50,75,75)


cv.namedWindow('img',cv.WINDOW_NORMAL)
cv.resizeWindow('img',200,100)
cv.imshow('img',dst)
cv.waitKey(0)
cv.imshow('img',res0)
cv.waitKey(0)
cv.imshow('img',res)
cv.waitKey(0)
cv.imshow('img',res1)
cv.waitKey(0)
cv.imshow('img',res2)
cv.waitKey(0)
cv.destroyAllWindows()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值