def psnr_img():
    # 所有文件全路径列表
    image = cv2.imread('testimage/lena1.jpg')  # 通过路径把图读进来
    image = cv2.resize(image, (20, 20), 0, 0,
                       cv2.INTER_LINEAR)  # 图片重塑,shape是(256, 256)
    image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    noise = dataset.gaussian(image, 25)
    if image.ndim == 2:
        image = image[None, ..., None]
    if noise.ndim == 2:
        noise = noise[None, ..., None]
    noise = dataset.pretrain_images(noise)
    image = dataset.pretrain_images(image)
    return image, noise
示例#2
0
images = np.array(images)
#检验一下导入的是否是灰度图片
images_channel_1 = np.copy(images[:, :, :, 0])
images_channel_2 = np.copy(images[:, :, :, 1])
images_channel_3 = np.copy(images[:, :, :, 2])

print('开始检验数据...')
assert (images_channel_1 == images_channel_2).all() == True
assert (images_channel_2 == images_channel_3).all() == True
print('完成检验数据...')

#适合训练的原始数据形状(9, 256, 256, 1)
images = np.copy(images_channel_1[:, :, :, np.newaxis])

#对原始数据进行数据预处理
images_data = dataset.pretrain_images(images)
images_data = np.array(images_data)  #(9, 256, 256, 1)
print('原始数据shape : ', images_data.shape)

#为图片添加高斯噪声并保存,混合噪声
gaussian_noise_imgs = dataset.add_gaussian_and_save(images)

#展示添加高斯噪声之后的图片,并返回数据预处理之后的图片
#经过了归一化:数据值在0到1之间
gaussian_data = dataset.show_gaussian_noise_images(gaussian_noise_imgs)
gaussian_data = np.array(gaussian_data)  #(9, 256, 256, 1)
print('高斯噪声数据shape : ', gaussian_data.shape)

print('完成数据预处理...')

print('开始展示图片...')
示例#3
0
import cv2
import numpy as np
import dataset
import tensorflow as tf

# img01 = cv2.imread("E:\cpy\photo\image01.bmp")  # 读取目标图片
testdata = dataset.show_images('Image_Denoising', 256)
# 中值滤波
for i in testdata:
    img = i
    img_noise = dataset.gaussian(img, 25)

    img = dataset.pretrain_images(img)
    img_noise = dataset.pretrain_images(img_noise)

    img_medianBlur = cv2.medianBlur(img_noise, 5)
    font = cv2.FONT_HERSHEY_SIMPLEX
    # 均值滤波
    img_Blur = cv2.blur(img_noise, (5, 5))
    img_Blur = dataset.pretrain_images(img_Blur)
    # 高斯滤波
    img_GaussianBlur = cv2.GaussianBlur(img_noise, (7, 7), 0)
    img_GaussianBlur = dataset.pretrain_images(img_GaussianBlur)

    # 高斯双边滤波
    img_bilateralFilter = cv2.bilateralFilter(img_noise, 40, 75, 75)
    img_bilateralFilter = dataset.pretrain_images(img_bilateralFilter)

    psnr1 = tf.image.psnr(img_medianBlur, img, max_val=1)
    psnr2 = tf.image.psnr(img_GaussianBlur, img, max_val=1)
    psnr3 = tf.image.psnr(img_bilateralFilter, img, max_val=1)
    #恢复变量
    saver.restore(sess, 'encode_model1/model_cnn_train27_best.ckpt')
    index = 0
    #添加噪声
    #noisy_im = sess.run(noisy_image,feed_dict={content_image_place_shape:content_image.shape,content_image_place:content_image/1.0})
    for i in testimages:
        index += 1
        img = i
        noisyImage = dataset.gaussian(i, 25)
        # img = dataset.pretrain_images(img)
        # noisyImage = dataset.pretrain_images(noisyImage)
        if img.ndim == 2:
            img = img[None, ..., None]
        if noisyImage.ndim == 2:
            noisyImage = noisyImage[None, ..., None]
        img = dataset.pretrain_images(img)
        noisyImage = dataset.pretrain_images(noisyImage)

        #预测
        pred = sess.run(decoded, feed_dict={img_input: noisyImage})

        psnr_score1 = tf.image.psnr(pred, img, max_val=1)  # 去噪图psnr
        psnr_score2 = tf.image.psnr(noisyImage, img, max_val=1)  # 噪声图psnr
        # ssim1=ssim(pred, img,multichannel=True)

        with tf.Session() as sess1:
            psnr_score1 = sess1.run(psnr_score1)
            psnr_score2 = sess1.run(psnr_score2)

        print(psnr_score1)
        # print(ssim1)