实现:blur函数
blur()的作用是:对输入的图像src进行均值滤波后用dst输出。
代码如下:
import cv2 import matplotlib.pyplot as plt img = cv2.imread('D:\\flower.jpg',0) blur = cv2.blur(img,(3,5)) plt.subplot(1,2,1),plt.imshow(img,'gray') plt.subplot(1,2,2),plt.imshow(blur,'gray') plt.show()
函数理解:
blur():网上没有找到python中这个函数的相关介绍,以后再了解吧,在C++中blur是有5个参数的,在这里只用了两个。
subplot(numRows, numCols, plotNum):划分一个numRows行,numCols列的区域。第三个参数plotNum指定了子图所在的区域。此处应注意逗号的存在。(不懂什么用)
imshow():第二个参数可选,如果没有参数则默认彩色。
show():将图片显示出来。如果没有加上plt.show(),命令行将显示图片的地址,而不会弹出图片窗口。
实现如下:
有点
实现:medianBlur函数
medianBlur函数使用中值滤波器来平滑(模糊)处理一张图片,从src输入,结果从dst输出。对于多通道图片,它对每一个通道都单独进行处理,并且支持就地操作。
代码如下:
import numpy as np import cv2 import matplotlib.pyplot as plt img = cv2.imread('D:\\woman.jpg',0) for i in range(2000): temp_x = np.random.randint(0, img.shape[0]) temp_y = np.random.randint(0, img.shape[1]) img[temp_x][temp_y] = 255 newImg = cv2.medianBlur(img,5) plt.subplot(1,2,1),plt.imshow(img,'gray') plt.subplot(1,2,2),plt.imshow(newImg,'gray') plt.show()
函数理解:
np.random.randint(a,b):生成a,b之间的随机数,然后再以a,b分别为x,y坐标画点噪声。255为白色。
实现如下:
实现:GaussianBlur函数
代码如下:
import numpy as np import cv2 import matplotlib.pyplot as plt img = cv2.imread('D:\\woman.jpg') for i in range(2000): Axis_x = np.random.randint(0, img.shape[0]) Axis_y = np.random.randint(0, img.shape[1]) img[temp_x][temp_y] = 255 newImg = cv2.GaussianBlur(img,(5,5),0) plt.subplot(1,2,1),plt.imshow(img,'gray') plt.subplot(1,2,2),plt.imshow(newImg,'gray') plt.show()
高斯滤波和中值滤波的代码差不多,唯一的区别是在使用的滤波函数不同。
实现如下: