1

我尝试使用以下代码对 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 个去噪灰度图像。但是,我得到了蓝色的。

这是我的原始图像(板):

在此处输入图像描述

这是应用高斯滤波器后的结果:

在此处输入图像描述

4

0 回答 0