Я попытался применить фильтр Гаусса к 6 изображениям, чтобы убрать их шум, используя следующий код:
import os
import matplotlib.image as img
def load_data(dir_name ='C:/Users/ASUS/Desktop/Self_Learning/Coursera/Deep Learning in Computer Vision/plates'):
im_list=[]
for f in os.listdir(dir_name):
fpath = os.path.join(dir_name, f) # this will give you the path of each file in your directory
im = img.imread(fpath)
im_list.append(im)
return im_list
plates = load_data()
# The auxiliary function `visualize()` displays the images given as argument.
def visualize(imgs, format=None):
plt.figure(figsize=(20, 40))
for i, img in enumerate(imgs):
if img.shape[0] == 3:
img = img.transpose(1,2,0)
plt_idx = i+1
plt.subplot(3, 3, plt_idx)
plt.imshow(img, cmap=format)
plt.show()
visualize(plates, 'gray')
from scipy import ndimage
def noise_reduction(img):
denoised_list=[]
for i in img:
gauss_filtered = ndimage.gaussian_filter(i, sigma=1.4,truncate=2.0)
denoised_list.append(gauss_filtered)
return denoised_list
denoised_img= noise_reduction(plates)
visualize(denoised_img, 'gray')
пластин - это файл, который содержит мои изображения, а визуализация - это функция для отображения изображений. Результатом должно было стать 6 изображений с серой шкалой. Тем не менее, я получил сине-я sh.
Вот мои оригинальные изображения (пластины):
Это результат после применения гауссовского фильтра: