首页 > 其他分享 >psnr ssim lpips

psnr ssim lpips

时间:2024-03-20 11:01:08浏览次数:23  
标签:folder2 psnr val ssim values lpips


import os
import torch
import torchvision.transforms.functional as TF
from skimage.metrics import peak_signal_noise_ratio as psnr
from skimage.metrics import structural_similarity as ssim
import lpips
from PIL import Image


def calculate_metrics(folder1, folder2):
psnr_values = []
ssim_values = []
lpips_loss = lpips.LPIPS(net='vgg').cuda()
lpips_loss.eval()
lpips_values = []


for file1, file2 in zip(sorted(os.listdir(folder1)), sorted(os.listdir(folder2))):
image1 = Image.open(os.path.join(folder1, file1))
image2 = Image.open(os.path.join(folder2, file2))


# Convert images to tensors
image1 = TF.to_tensor(image1).unsqueeze(0).cuda()
image2 = TF.to_tensor(image2).unsqueeze(0).cuda()


# PSNR
psnr_val = psnr(image1.squeeze().cpu().numpy(), image2.squeeze().cpu().numpy())
psnr_values.append(psnr_val)


# SSIM
ssim_val = ssim(image1.squeeze().cpu().numpy(), image2.squeeze().cpu().numpy(), multichannel=True)
ssim_values.append(ssim_val)


# LPIPS
lpips_val = lpips_loss(image1, image2).item()
lpips_values.append(lpips_val)


avg_psnr = sum(psnr_values) / len(psnr_values)
avg_ssim = sum(ssim_values) / len(ssim_values)
avg_lpips = sum(lpips_values) / len(lpips_values)


return avg_psnr, avg_ssim, avg_lpips


folder1 = 'folder1_path'
folder2 = 'folder2_path'


psnr_val, ssim_val, lpips_val = calculate_metrics(folder1, folder2)
print(f'Average PSNR: {psnr_val}')
print(f'Average SSIM: {ssim_val}')
print(f'Average LPIPS: {lpips_val}')

 

 

标签:folder2,psnr,val,ssim,values,lpips
From: https://www.cnblogs.com/yyhappy/p/18084774

相关文章

  • 计算lpips
    importosimporttorchimportlpipsfromPILimportImagefromtorchvision.transformsimportToTensor#初始化LPIPS模型loss_fn=lpips.LPIPS(net='vgg')defcalculate_lpips(img_path1,img_path2):#读取图像img1=Image.open(img_path1)img2......
  • Mac arm 调试 maui 提示 iOS 构建没有“net8.0-ios/iossimulator-x64”的目标解决办法
    在arm芯片mac调试,使用macforvs,出现以下错误obj/project.assets.json”没有“net8.0-ios/iossimulator-x64”的目标。确保已运行还原,且“net8.0-ios”已包含在项目的TargetFrameworks中。可能需要在项目RuntimeIdentifiers中包括“iossimulator-x64”。(NETSDK1047......
  • cannot import name ‘compare_ssim‘ 解读
    不能导入'compare_ssim'的解决方法当在Python中编写图像处理代码时,可能会遇到ImportError:cannotimportname'compare_ssim'的错误。这个错误通常是由于无法导入compare_ssim函数而引起的。本文将介绍导致此错误的可能原因,并提供解决方案。问题原因compare_ssim函数是用于计算结......
  • 解决U盘安装OSSIM系统引导失败的问题
    在OSSIM安装的最后阶段,系统会进行GRUB引导程序安装,一旦GRUB安装失败,会导致系统无法引导。最近一些学员采用U盘在物理服务器部署OSSIM就遇到了这种问题,下面我们看个实例。一、背景用户将OSSIM的镜像写入到U盘(8GB)之后,采用U盘在服务器上安装系统,结果导致系统无法引导。下图为正常情况......
  • 基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览设置较大的干扰,PSNR=15。   设置较小的干扰,PSNR=25。   2.算法运行软件版本matlab2022a vivado2019.2  3.算法理论概述      基于FPGA的图像PSNR(峰值信噪比)质量评估计算实现涉及到数字图像处理、硬件设计和编程等多个领域......
  • VISSIM模拟上海松江新城小区道路开放及交通状况改善分析
    分析师:MingmingZhao上海市近年来不断增长的高峰出行车辆数,带来了交通负荷严重等城市问题,本项目主要探究开放封闭式小区能否实现对道路交通状况的改善。对道路交通状况的综合分析基于对道路不同时间段、不同位置交通状况的全面且真实客观的评价,鉴于道路状况受不同类型因素影响的多......
  • VISSIM模拟上海松江新城小区道路开放及交通状况改善分析
    全文链接:https://tecdat.cn/?p=34593原文出处:拓端数据部落公众号分析师:MingmingZhao上海市近年来不断增长的高峰出行车辆数,带来了交通负荷严重等城市问题,本项目主要探究开放封闭式小区能否实现对道路交通状况的改善。对道路交通状况的综合分析基于对道路不同时间段、不同位置......
  • offline RL | Pessimistic Bootstrapping (PBRL):在 Q 更新中惩罚 uncertainty,拉低 OOD
    论文题目:PessimisticBootstrappingforUncertainty-DrivenOfflineReinforcementLearning,ICLR2022,6688spotlight。pdf版本:https://arxiv.org/abs/2202.11566html版本:https://ar5iv.labs.arxiv.org/html/2202.11566openreview:https://openreview.net/forum?id=Y4c......
  • 图像质量评价指标 PSNR 和 SSIM
    PSNR和SSIM是两种常见的图像质量评价指标,通常用于衡量两张图像的相似度。参考材料:https://zh.wikipedia.org/wiki/峰值信噪比https://zhuanlan.zhihu.com/p/50757421PSNRPSNR:峰值信噪比(Peaksignal-to-noiseratio),常用对数分贝单位来表示。先定义均方误差\(MSE\)。灰......
  • python报错cannot import name ‘compare_ssim‘ from ‘skimage.measure‘
    问题原因: scikit-image版本过高导致 解决办法: 重装,安装低版本 pipuninstallscikit-imagepipinstallscikit-image==0.15.0-U-ihttps://pypi.tuna.tsinghua.edu.cn/simple ......