weixin_46800491 2020-04-07 23:33 采纳率: 0%
浏览 10051

python出现unsupported operand type(s) for -: 'NoneType' and 'NoneType'请问怎么办

想要求两个图片的psnr和ssim值,代码上午还可以正常运行,下午再打开就报错

import numpy
import numpy as np
import math
import cv2
import torch
import pytorch_ssim
from torch.autograd import Variable

original = cv2.imread("D:\CSDN\chulihoutupian\7yuantu.png") # numpy.adarray
contrast = cv2.imread("D:\CSDN\chulihoutupian\7jz.png",1)

def psnr(img1, img2):
mse = numpy.mean( (img1 - img2) ** 2 )
if mse == 0:
return 100
PIXEL_MAX = 255.0
return 20 * math.log10(PIXEL_MAX / math.sqrt(mse))

def ssim(img1,img2):
img1 = torch.from_numpy(np.rollaxis(img1, 2)).float().unsqueeze(0)/255.0
img2 = torch.from_numpy(np.rollaxis(img2, 2)).float().unsqueeze(0)/255.0

img1 = Variable( img1, requires_grad=False) # torch.Size([256, 256, 3])
img2 = Variable( img2, requires_grad = False)
ssim_value = pytorch_ssim.ssim(img1, img2).item()
return ssim_value

psnrValue = psnr(original,contrast)
ssimValue = ssim(original,contrast)
print(psnrValue)
print(ssimValue)

这是代码

Traceback (most recent call last):
File "C:/Users/yangw/Desktop/test.py", line 27, in
psnrValue = psnr(original,contrast)
File "C:/Users/yangw/Desktop/test.py", line 13, in psnr
mse = numpy.mean( (img1 - img2) ** 2 )
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneT

这是错误提示,请问怎么改呢?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-04-08 00:16
    关注

    img1 - img2
    这里的img1或/和 img2是None,没有数据

    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况