PSNR:

# im1 和 im2 都为灰度图像,uint8 类型# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)

SSIM:

# im1 和 im2 都为灰度图像,uint8 类型
ssim = skimage.measure.compare_ssim(im1, im2, data_range=255)

VIF:

vifp = skimage.measure.compare_vifp(img1, img2)

这里我把函数包里的SSIM改成了VIF的计算方式。

同样都是skimage函数库中的,从anaconda的函数库那个文件夹进去,找到~/skimage/measure里面的函数_structural_similarity.py,然后复制粘贴,改成VIF的计算(下面代码复制过去),改成_vifp.py,就可以直接调用。

##我的命名成_vifp!!import numpy
import scipy.signal
import scipy.ndimage__all__ = ['compare_vifp']def compare_vifp(ref, dist):sigma_nsq = 2eps = 1e-10num = 0.0den = 0.0for scale in range(1, 5):N = 2 ** (4 - scale + 1) + 1sd = N / 5.0if (scale > 1):ref = scipy.ndimage.gaussian_filter(ref, sd)dist = scipy.ndimage.gaussian_filter(dist, sd)ref = ref[::2, ::2]dist = dist[::2, ::2]mu1 = scipy.ndimage.gaussian_filter(ref, sd)mu2 = scipy.ndimage.gaussian_filter(dist, sd)mu1_sq = mu1 * mu1mu2_sq = mu2 * mu2mu1_mu2 = mu1 * mu2sigma1_sq = scipy.ndimage.gaussian_filter(ref * ref, sd) - mu1_sqsigma2_sq = scipy.ndimage.gaussian_filter(dist * dist, sd) - mu2_sqsigma12 = scipy.ndimage.gaussian_filter(ref * dist, sd) - mu1_mu2sigma1_sq[sigma1_sq < 0] = 0sigma2_sq[sigma2_sq < 0] = 0g = sigma12 / (sigma1_sq + eps)sv_sq = sigma2_sq - g * sigma12g[sigma1_sq < eps] = 0sv_sq[sigma1_sq < eps] = sigma2_sq[sigma1_sq < eps]sigma1_sq[sigma1_sq < eps] = 0g[sigma2_sq < eps] = 0sv_sq[sigma2_sq < eps] = 0sv_sq[g < 0] = sigma2_sq[g < 0]g[g < 0] = 0sv_sq[sv_sq <= eps] = epsnum += numpy.sum(numpy.log10(1 + g * g * sigma1_sq / (sv_sq + sigma_nsq)))den += numpy.sum(numpy.log10(1 + sigma1_sq / sigma_nsq))vifp = num / denif numpy.isnan(vifp):return 1.0else:return vifp

PSNRSSIMVIF指标-python版本相关推荐

  1. python多个版本可不可以装在一起_可以在同一台计算机上安装多个Python版本。

    可以在同一台计算机上安装多个Python版本. 答:对 合理膳食的核心问题是 ( ) 答:膳食结构 青天明月来几时?我今停杯一问之.人攀明月不可得,. --李白<把酒问月> 答:月行却与人 ...

  2. 基于ModelArts和CANN的端到端行人检测和跟踪Demo(Python版本)【训练篇】

    前言 基于华为云ModelArts和昇腾CANN实现从训练到部署的端到端行人检测和跟踪Demo,这里的CANN使用的是Python接口(Python版本). 在ModelArts完成开发和模型训练 华 ...

  3. 多版本python共存,安装三方库到指定python版本 多Python版本和虚拟环境

    多个Python版本:在同一台机器上安装不同的Python,例如2.7和3.4. 虚拟环境:独立的环境,既可以同时安装特定版本的Python,也可以安装任何特定于项目的软件包,而不会影响任何其他项目. ...

  4. 适合win7的python版本_windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2...

    windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2 1.官网下载python3.6.2 https://www.python.org/ftp/ ...

  5. linux python版本_linux下更新Python版本并修改默认版本

    linux下更新Python版本并修改默认版本,有需要的朋友可以参考下. 很多情况下拿到的服务器python版本很低,需要自己动手更改默认python版本 1.从官网下载python安装包(这个版本可 ...

  6. 如何管理多个Python版本和虚拟环境

    Addition January 2019: If you are coming back to this blog after upgrading to macOS Mojave please se ...

  7. Python版本的数据结构书_《用Python解决数据结构与算法问题》

    源于经典 数据结构作为计算机从业人员的必备基础,Java, c 之类的语言有很多这方面的书籍,Python 相对较少, 其中比较著名的一本 problem-solving-with-algorithm ...

  8. ubuntu升级python_ubuntu升级python版本

    运行发现错误: AttributeError: 'module' object has no attribute 'OrderedDict' google发现是因为python版本老了的原因(pyth ...

  9. linux中更新python_linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  10. 如何确定python对应电脑版本_查看Anaconda版本、Anaconda和python版本对应关系和快速下载...

    官网 查看Anaconda版本 (C:\ProgramData\Anaconda3) C:\Users\Administrator>conda -V conda 4.3.30 Anaconda和 ...

最新文章

  1. Khadas VIM3 (Amlogic A311D) uboot去掉烦人的乱七八糟的打印1——BL2 BL3x
  2. 2016/1/4 学习笔记 数据类型转换 注释 语句
  3. 数据返回nan_数据处理教程
  4. 换脸App爆红引发人脸盗刷担忧?看到支付宝的回应放心了...
  5. Spring : Bean依赖注解(@DependsOn)
  6. [OC]数据库的使用--数据读取
  7. js img转换base64
  8. python声明编码_Python 2.x 编码声明:是coding:utf-8还是coding=urf-8呢
  9. android App下载与安装
  10. 华为odjava机试题_华为机试题及答案
  11. 网页中那些遇到过的导航选中状态actived selected
  12. maxwell采集mysql binlog 日志数据到kafka topic
  13. 【C++初阶学习】之 懒人神器——模版(概念)
  14. 什么是火起来的“宅经济”,重庆阿尔克互联网技能帮扶学习,进入互联网
  15. 12月19日科技资讯|富士康员工涉嫌盗卖 iPhone 零件遭调查;IntelliJ IDEA 2019.3.1 发布
  16. 用通俗的话解释下offsetHeight
  17. 魔兽争霸Trigger学习教程(0)
  18. 推荐适合新手入门的音频剪辑软件推荐
  19. yl335b分拣站单元流程图_基于PLC与MCGS的YL-335B分拣单元的创新设计
  20. 【英语阅读】纽约时报 | 边走路边看手机有多危险,以及你该如何控制自己

热门文章

  1. Ubuntu配置阿里云镜像
  2. linux nginx进程占用80端口杀不掉
  3. 2,词根 - 抓、拿
  4. ISP—自动白平衡(AWB)
  5. 动态规划之二项式系数
  6. LeetCode 506 Relative Ranks
  7. IDEA导入插件依赖后Maven报错:java.lang.RuntimeException: Cannot reconnect.
  8. 无法启用家庭计算机共享,如何解决Win7无法启用共享访问的问题?
  9. AM335x Linux调试1--MLO中打印寄存器值
  10. php微信支付的分账,微信支付分账,就是这么简单!