实验步骤:
1.环境 安装好python3.x opencv3.3 window下
2.高斯模糊
概念:高斯模糊本质上是低通滤波器,输出图像的每个像素点是原图像上对应像素点与周围像素点的加权和
使用cv2做高斯模糊,只要一行代码调用GaussianBlur函数,给出高斯矩阵的尺寸和标准差就可以:
blur = cv2.GaussianBlur(img,(5,5),0) (5,5):高斯矩阵的长与宽都是5,标准差取0时OpenCV会根据高斯矩阵的尺寸自己计算
概括地讲,高斯矩阵的尺寸越大,标准差越大,处理过的图像模糊程度越大。
3. 实验代码
import cv2
imgName = "1.jpg";
kernel_size = (5, 5);
sigma = 1.5;
img = cv2.imread(imgName);
img = cv2.GaussianBlur(img, kernel_size, sigma);
#高斯模糊api,参数一:图像矩阵img 参数二:图像的尺寸 参数三:标准差 标准差取0时OpenCV会根据高斯矩阵的尺寸自己计算
new_imgName = "New_" + str(kernel_size[0]) + "_" + str(sigma) + "_" + imgName;
cv2.imwrite(new_imgName, img);
4.实验结果:
4.可以看出,趋势的确是高斯矩阵尺寸和标准差越大,处理后的图片越模糊。
参考:
-
OpenCV: Smoothing Images http://docs.opencv.org/master/d4/d13/tutorial_py_filtering.html#gsc.tab=0
-
Python下实现图片的高斯模糊化 https://www.cnblogs.com/lzxwalex/p/6776170.html