OpenCV:图像平滑和图像模糊处理
导包:
import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image=cv2.imread(image) image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB) return image
图像的平滑处理:
kernelsizes=[(3,3),(9,9),(15,15)] plt.figure(figsize=(15,15)) for i,kenel in enumerate(kernelsizes): plt.subplot(1,3,i+1) #平均平滑的方式 blur=cv2.blur(image,kenel) plt.axis('off')#不显示坐标 plt.title('great title'+str(kenel)) plt.imshow(blur) plt.show()
高斯模糊:
kernelsizes=[(3,3),(9,9),(15,15)]#仅对于这幅图来说,高斯模糊和平均模糊是没有什么区别的。 plt.figure(figsize=(15,15)) for i,kenel in enumerate(kernelsizes): plt.subplot(1,3,i+1) #平均平滑的方式 blur=cv2.GaussianBlur(image,kenel,0) plt.axis('off')#不显示坐标 plt.title('great title'+str(kenel)) plt.imshow(blur) plt.show()
中值模糊:
plt.figure(figsize=(15,15)) for i,kenel in enumerate((3,9,15)):#意思是代表3*3,9*9,15*15的卷积核 plt.subplot(1,3,i+1) #平均平滑的方式 blur=cv2.medianBlur(image,kenel,0) plt.axis('off')#不显示坐标 plt.title('great title'+str(kenel)) plt.imshow(blur) plt.show()