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

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,没有数据

    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误