python 计算ssim

def gaussian(window_size, sigma):gauss = torch.Tensor([exp(-(x - window_size // 2) ** 2 / float(2 * sigma ** 2)) for x in range(window_size)])return gauss / gauss.sum()
def create_window(window_size, channel):_1D_window = gaussian(window_size, 1.5).unsqueeze(1)_2D_window = _1D_window.mm(_1D_window.t()).float().unsqueeze(0).unsqueeze(0)window = Variable(_2D_window.expand(channel, 1, window_size, window_size).contiguous())return window
def _ssim(img1, img2, window, window_size, channel, size_average=True):mu1 = F.conv2d(img1, window, padding=window_size // 2, groups=channel)mu2 = F.conv2d(img2, window, padding=window_size // 2, groups=channel)mu1_sq = mu1.pow(2)mu2_sq = mu2.pow(2)mu1_mu2 = mu1 * mu2sigma1_sq = F.conv2d(img1 * img1, window, padding=window_size // 2, groups=channel) - mu1_sqsigma2_sq = F.conv2d(img2 * img2, window, padding=window_size // 2, groups=channel) - mu2_sqsigma12 = F.conv2d(img1 * img2, window, padding=window_size // 2, groups=channel) - mu1_mu2C1 = 0.01 ** 2C2 = 0.03 ** 2ssim_map = ((2 * mu1_mu2 + C1) * (2 * sigma12 + C2)) / ((mu1_sq + mu2_sq + C1) * (sigma1_sq + sigma2_sq + C2))if size_average:return ssim_map.mean()else:return ssim_map.mean(1).mean(1).mean(1)
def ssim(img1, img2, window_size=11, size_average=True):(_, channel, _, _) = img1.size()window = create_window(window_size, channel)if img1.is_cuda:window = window.cuda(img1.get_device())window = window.type_as(img1)return _ssim(img1.mean(dim=0, keepdims=True), img2.mean(dim=0, keepdims=True), window, window_size, channel, size_average)

python 计算ssim相关推荐

  1. Python计算Y通道或者RGB通道的PSNR_SSIM

    Python计算Y通道或者RGB通道的PSNR_SSIM 一. PSNR与SSIM简介 二.代码实现 三.运行.保存结果展示 一. PSNR与SSIM简介 峰值信噪比(Peak Signal-to-n ...

  2. 使用OpenCV和Python计算图像的“彩色度”

    使用OpenCV和Python计算图像"彩色度" 1. 效果图 2. 炫彩度量方法是什么? 3. 源代码 参考 你是否尝试过计算每个图像的炫彩值,并根据炫彩值对自己的图像数据集进行 ...

  3. Python计算训练数据集(测试集)中某个分类变量阴性(阳性)标签样本的不同水平(level)或者分类值的统计个数以及比例

    Python计算训练数据集(测试集)中某个分类变量阴性(阳性)标签样本的不同水平(level)或者分类值的统计个数以及比例 目录

  4. Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序、获取交集元素及其索引、如果输入数组不是一维的,它们将被展平(flatten),然后计算交集

    Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序.获取交集元素及其索引.如果输入数组不是一维的,它们将被展平(flatten),然后计算交集 目录

  5. Python使用datetime中的timedelta模块实现时间增减:python计算100天后是哪年那月那日?

    Python使用datetime中的timedelta模块实现时间增减:python计算100天后是哪年那月那日? 目录

  6. python计算特征的统计值并文本输出

    python计算特征的统计值并文本输出 # 输出统计分位数 df.describe(percentiles=[0.05, 0.25, 0.5, 0.75, 0.95]) featname:A => ...

  7. python计算特征与目标的相关性并可视化

    python计算特征与目标的相关性并可视化 pandas计算相关性 # 相关性 tips.corr() Out[2]: total_bill tip size total_bill 1.000000 ...

  8. python计算时间差

    python计算时间差 # 使用datetime 和 timedelta import datetime old_time = datetime.datetime.now() print(old_ti ...

  9. python计算两个字典的相同点(从key、value、item角度)

    python计算两个字典的相同点(从key.value.item角度) 字典是由一个一个的 key-value 构成的,key 是找到数据的关键,Python 对字典的操作都是通过 key 来完成的. ...

最新文章

  1. python的with语句
  2. 图像、视频生成大一统!MSRA+北大全华班「女娲」模型怒刷8项SOTA,完虐OpenAI DALL-E...
  3. project euler之甚至斐波那契数字(Even Fibonacci numbers)
  4. PHP版Leetcode题解开始随缘更新
  5. iNeuOS工业互联平台,生产过程业务联动控制
  6. 使用stanford nlp进行依存句法分析
  7. 五子棋java源代码博客园_来来来,五子棋源代码
  8. 毕业设计论文选题系统系统用例图_基于UML的毕业设计管理系统的分析与设计
  9. 美图秀秀计算机教程,美图秀秀批处理软件详细图文版使用教程,一起学习吧
  10. 2021年“泰迪杯”数据分析技能B题-肥料登记数据分析赛题
  11. 功能强大的NAS云存储
  12. 51单片机烧录程序异常: 正在检测目标单片机…
  13. HTB[Tier 0]Appointment题解
  14. ubuntu20.04 ros 采集velodyne激光雷达数据
  15. not properly quoted string terminated_oracle quoted string not properly terminated
  16. C++11特性(详细版)
  17. OCR识别之LEADTOOLS介绍
  18. configuration 配置文件解析
  19. Skype for Business Server 2015-13-IISARR-2-发布-3-OWAS
  20. VScode必备插件大全

热门文章

  1. matlab 图像分割_好文章:基于MATLAB的图像分割算法研究
  2. 云南初中计算机学业水平要求,云南省初中信息技术学业水平考试复习合集
  3. 靶机渗透练习41-Empire Lupin One
  4. python爬虫 携程 机票 sign transactionID
  5. 以太网转串口ttl 原理图 PCB
  6. 【MAYA动画基础学习 1】小球动画的三种方式——关键帧,刚体和布料
  7. SegNet-论文笔记-理解
  8. flutter 实现圆形图片
  9. 计算机网络大学规划500字,大学学习计划书范文500字
  10. 单片机c语言中延时函数的作用,单片机中C语言延时函数