首页 > 其他分享 >66

66

时间:2024-03-20 11:25:47浏览次数:29  
标签:psnr val ssim values 66 import 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, win_size=11)
        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}')

 

标签:psnr,val,ssim,values,66,import,lpips
From: https://www.cnblogs.com/yyhappy/p/18084830

相关文章

  • S2-066漏洞分析与复现(CVE-2023-50164)
    Foreword自struts2官方纰漏S2-066漏洞已经有一段时间,期间断断续续地写,直到最近才完成。羞愧地回顾一下官方通告:2023.12.9发布,编号CVE-2023-50164,主要影响版本是2.5.0-2.5.32以及6.0.0-6.3.0,描述中提到了文件上传漏洞和目录穿越漏洞。开始以为这是个组合漏洞,其实不是,这是一个......
  • 杭电OJ 2066 一个人的旅行
    一个人的旅行考查图论中的单源最短路径问题,首先图的存储方式,前面说过在实际程序中一般用邻接表,为每一个顶点都分配一个单链表(向量)。由于这里顶点的总个数并不确定,用visit数组在集合T中遍历寻找下一个用来松弛的顶点,这一方式不太合适,所以这里我用优先队列,每次弹出距离起始点距离......
  • 代码随想录算法训练营第23天|669. 修剪二叉搜索树|108.将有序数组转换为二叉搜索树|53
    代码随想录算法训练营第23天|669.修剪二叉搜索树|108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树|总结篇669.修剪二叉搜索树这道题目比较难,比添加增加和删除节点难的多,建议先看视频理解。题目链接/文章讲解:https://programmercarl.com/0669.%E4%BF%A......
  • 威联通(QNAP) TS-466C NAS 开箱评测,4盘位NAS,N6005,存储服务器
    威联通(QNAP)TS-466C四盘位NAS(NetworkAttachedStorage:网络附属存储)开箱评测之前用的TS-551经过几轮系统升级后明显感觉性能跟不上了,变卡了,所以升级一下,换了TS-466C。威联通迁移NAS还挺方便的,只有将原先NAS里的硬盘取出来按顺序插入新NAS后直接开机就行,系统里的东......
  • 3.3 RK3399项目开发实录-板载Ubuntu系统的使用(物联技术666)
    嵌入式物联网常用90款传感器开发例程。链接:https://pan.baidu.com/s/1oisHMZXDzKqa4EspY83V-A?pwd=o5f41.介绍Ubuntu使用手册是针对Firefly官方发布的Ubuntu系统固件特性所编写,适用于UbuntuDesktop与Minimal系统,部分与UI显示相关的介绍,只针对Desktop系统。......
  • 3.3 RK3399项目开发实录-板载Ubuntu系统的使用(wulianjishu666)
    嵌入式物联网常用90款传感器开发例程。链接:https://pan.baidu.com/s/1oisHMZXDzKqa4EspY83V-A?pwd=o5f41.介绍Ubuntu使用手册是针对Firefly官方发布的Ubuntu系统固件特性所编写,适用于UbuntuDesktop与Minimal系统,部分与UI显示相关的介绍,只针对Desktop系统。......
  • RFC6666 IPv6黑洞路由
    RFC6666IPv6黑洞路由RFC6666,建议看一下原文,原文很短,一共只有六页,除去参考和作者信息正文不到三页。此RFC废除了一个IPv6前缀,把此段地址用于IPv6黑洞路由。下面以ChatGPT问答形式展现,RFC666主要内容及目的:===============问:rfc6666为什么要废除一个ipv6前缀ChatGPT:RFC66......
  • 代码随想录 第23天 | 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 5
    leetcode:669.修剪二叉搜索树-力扣(LeetCode)classSolution{publicTreeNodetrimBST(TreeNoderoot,intlow,inthigh){//和删除差不多,怕删除的节点的左右孩子节点有符合范围的,所以要每次判断一下,如果有不符合要求的就直接返回上一个节点。if(roo......
  • 【洛谷 P8661】[蓝桥杯 2018 省 B] 日志统计 题解(滑动窗口+优先队列+双端队列+集合)
    [蓝桥杯2018省B]日志统计题目描述小明维护着一个程序员论坛。现在他收集了一份“点赞”日志,日志共有NNN行。其中每一行的格式是tsid,表示在......
  • 插入数据库遇到中文无插入的问题 Error 1366 (HY000): Incorrect string value: ‘\x
    项目场景:beego登录注册过程中将信息写入到MYSQL数据库中问题描述字段写入过程中数据出现无法写入的情况,出现报错:Error1366(HY000):Incorrectstringvalue:‘\xE7\x94\xB7’forcolumn‘sex’atrow1原因分析:根据控制台收到的打印信息我发现数据正确从前......