图像平滑
为图像增加噪声
import cv2
import numpy as np
img = cv2.imread("C:/Users/31035/Desktop/yifei/01.jpg", cv2.IMREAD_UNCHANGED)
rows, cols, chn = img.shape
for i in range(60000):
x = np.random.randint(0, rows)
y = np.random.randint(0, cols)
img[x,y,:] = 0
cv2.imshow("noise", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img.size
均值滤波
import matplotlib.pyplot as plt
img = cv2.imread("C:/Users/31035/Desktop/yifei/01.jpg",cv2.COLOR_BGR2RGB)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
result = cv2.blur(img, (50,50))
titles = ['Source Image', 'Blur Image']
images = [img, result]
for i in range(2):
plt.subplot(1,2,i+1), plt.imshow(images[i])
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
方框滤波
img = cv2.imread("C:/Users/31035/Desktop/yifei/01.jpg",cv2.COLOR_BGR2RGB)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
result = cv2.boxFilter(img, -1, (5,5), normalize=1)
titles = ['Source Image', 'boxFilter Image']
images = [img, result]
for i in range(2):
plt.subplot(1,2,i+1), plt.imshow(images[i])
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
img = cv2.imread("C:/Users/31035/Desktop/yifei/01.jpg",cv2.COLOR_BGR2RGB)
source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
result = cv2.boxFilter(source, -1, (2,2), normalize=0)
titles = ['Source Image', 'boxFilter Image']
images = [source, result]
for i in range(2):
plt.subplot(1,2,i+1), plt.imshow(images[i])
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
高斯滤波
img = cv2.imread("C:/Users/31035/Desktop/yifei/01.jpg",cv2.COLOR_BGR2RGB)
source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
result = cv2.GaussianBlur(source, (19,19), 0)
titles = ['Source Image', 'GaussianBlur Image']
images = [source, result]
for i in range(2):
plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
中值滤波
import matplotlib.pyplot as plt
img = cv2.imread("C:/Users/31035/Desktop/yifei/01.jpg",cv2.COLOR_BGR2RGB)
source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
result = cv2.medianBlur(source, 19)
titles = ['Source Image', 'medianBlur Image']
images = [source, result]
for i in range(2):
plt.subplot(1,2,i+1), plt.imshow(images[i], 'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
cv2.imwrite('C:/Users/31035/Desktop/yifei/02.jpg',result)