从前面来看已经可以把积分图像的功能集成到OpenCV里,那么在它里面也有相应的均值平滑的函数cv2.blur,这个函数实现的功能与前面实现快速计算平滑的方法是一样的,只不过它可以处理彩色图像,因为它可以把彩色图片进行分离成三个颜色的图像进行平滑,再合并回来。它的定义如下:
src 输入图像
dst 输出图像
ksize 平滑窗口的大小
anchor 锚点,如果宽、高均为奇数,则Point(-1,-1)代表中心点
borderType 边界扩充类型
因此前面均值平滑的例子,就可以简写成这样:
#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import cv2
import numpy as np
#图片的路径
imgname = "gauss1.jpg"
#读取图片
image = cv2.imread(imgname, cv2.IMREAD_GRAYSCALE)
#图片的高度和宽度
h,w = image.shape[:2]
print('imagesize={}-{}'.format(w,h))
#显示原图
cv2.imshow("Image",image)
#平滑
out = cv2.blur(image,(5,5))
out = out.astype(np.uint8)
cv2.imshow("out",out)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果输出如下:
输入图片
输出图片
https://blog.csdn.net/caimouse/article/details/51749579
转载:https://blog.csdn.net/caimouse/article/details/100986998
查看评论