opencv 平滑处理

cv.filter2D()将一个内核与图像进行卷积运算。
取内核与像素的平均值,用新的平均值替代中心像素。

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('opencv_logo.png')
kernel = np.ones((5,5),np.float32)/25
dst = cv.filter2D(img,-1,kernel)
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]), plt.yticks([])
plt.show()

图像模糊
图像模糊是将图像与低通滤波器内核卷积来实现的,从图像中删除了高频内容。

平均
cv.blur()与cv.boxFilter()来完成

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
img = cv.imread('opencv-logo-white.png')
blur = cv.blur(img,(5,5))
plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(blur),plt.title('Blurred')
plt.xticks([]), plt.yticks([])
plt.show()

高斯模糊

cv.GaussianBlur()

blur = cv.GaussianBlur(img,(5,5),0)

中值模糊
中间元素被替换为中值
cv.medianBlur()

median = cv.medianBlur(img,5)

双边模糊
双边模糊既可以去掉噪声,又可以保持边缘锐利,但是速度比较慢。
高斯模糊考虑附近的像素,不考虑是否是一个边缘像素,所以模糊了边缘。
双边模糊则考虑了边缘

blur = cv.bilateralFilter(img,9,75,75)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值