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()

猜你喜欢

转载自www.cnblogs.com/geeksongs/p/11131651.html