首页 > 其他分享 >1

1

时间:2023-12-24 19:56:41浏览次数:16  
标签: img cv2 high low np img2

# 导入所需的库
from PIL import Image
import numpy as np
import torch
import matplotlib.pyplot as plt
import cv2
import math


def calculate_psnr(img1, img2):
    # img1 and img2 have range [0, 255]
    img1 = img1.astype(np.float64)
    img2 = img2.astype(np.float64)
    mse = np.mean((img1 - img2) ** 2)
    return 20 * math.log10(255.0 / math.sqrt(mse))

# 读取图片并转换为numpy数组
low_img = cv2.imread("img/low/2.png")
low_img = np.array(low_img)

# print(low_img.shape)

high_img = cv2.imread("img/high/9.png")
high_img2 = np.array(high_img)
# print(high_img.shape)

gt_img = cv2.imread("img/high/2.png")
gt_img = np.array(gt_img)

low_img = low_img / 255.
high_img = high_img2 / 255.

mean_gray_out = cv2.cvtColor(low_img.astype(np.float32), cv2.COLOR_BGR2GRAY).mean()
mean_gray_gt = cv2.cvtColor(high_img.astype(np.float32), cv2.COLOR_BGR2GRAY).mean()
normal_img_adjust = np.clip(low_img * (mean_gray_gt / mean_gray_out), 0, 1)

output_low_img = (normal_img_adjust * 255).astype(np.uint8)
print(output_low_img.shape)

psnr = calculate_psnr(output_low_img, gt_img)
print(psnr)


cv2.imwrite('img/output/1.png', output_low_img)

# 计算图片的直方图,假设图片是灰度图,像素值范围是0-255
# low_hist = torch.histc(torch.from_numpy(low_img_arr), bins=256, min=0, max=255)

# 绘制直方图
# plt.bar(np.arange(256), low_hist.numpy())
# plt.xlabel("Pixel value")
# plt.ylabel("Frequency")
# plt.title("Histogram of image")
# plt.show() # 显示直方图
# plt.savefig("histogram.jpg") #

 

标签:,img,cv2,high,low,np,img2
From: https://www.cnblogs.com/yyhappy/p/17924769.html

相关文章