python3,python PSNR代碼

 2023-11-14 阅读 27 评论 0

摘要:圖像恢復常用psnr做為評價指標。psnr值越高則表示兩幅圖像越相似。 由于圖像處理時常有兩種類型的格式,一種是tensor類型,一種是numpy類型。所以這里準備了兩個代碼。 python3、 import torch import numpy as np import cv2 from torchvision import transform

圖像恢復常用psnr做為評價指標。psnr值越高則表示兩幅圖像越相似。

由于圖像處理時常有兩種類型的格式,一種是tensor類型,一種是numpy類型。所以這里準備了兩個代碼。

python3、

import torch
import numpy as np
import cv2
from torchvision import transformsdef torchPSNR(tar_img, prd_img):imdff = torch.clamp(prd_img,0,1) - torch.clamp(tar_img,0,1)rmse = (imdff**2).mean().sqrt()ps = 20*torch.log10(1/rmse)return psdef numpyPSNR(tar_img, prd_img):##這里通常會去除邊框imdff = np.float32(prd_img) - np.float32(tar_img)rmse = np.sqrt(np.mean(imdff**2))ps = 20*np.log10(255/rmse)return psimg1=cv2.imread('./2.png')
# img1=cv2.cvtColor(img1, cv2.COLOR_BGR2YCR_CB)###改變顏色
# b1,g1,r1=cv2.split(img1)  ##通道分離
img2=cv2.imread('./3.png')
# img2=cv2.cvtColor(img2, cv2.COLOR_BGR2YCR_CB)
# b2,g2,r2=cv2.split(img2)
print(numpyPSNR(img1,img2))img1=transforms.ToTensor()(img1)
img2=transforms.ToTensor()(img2)print(torchPSNR(img1,img2))
# print(numpyPSNR(g1,g2))
# print(numpyPSNR(b1,b2))
# print(numpyPSNR(r1,r2))

補充:

當圖片的數據類型是np.uint8時。

from skimage.measure import compare_ssim,compare_psnr
psnr = compare_psnr(img1, img2, 255)

?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/174879.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息