属性错误:'NoneType'对象没有属性'shape'(如何使用python循环和比较1个图像和多个图像)



我试图通过计算SSIM值将图像与多个图像进行比较。我使用的代码写在答案作为参考:我如何使用python比较一个图像和许多其他图像之间的SSIM ?

下面是我无法解决的错误。

AttributeError: 'NoneType' object has no attribute 'shape'

我试过调整大小,并使用图像。打开,但没有一个工作。我读到这个问题可能是由于图像不存在或不在正确的路径中引起的,但从下面的脚本来看,路径似乎是正确的,但仍然没有返回。

要注意的是"主题"。

脚本(将不工作的代码行作为注释留下):

from skimage.metrics import structural_similarity as ssim
import matplotlib.pyplot as plt
import numpy as np
import PIL
import cv2
import os
first_dir = r'C:UsersxxDownloadsSample imagessubject'
second_dir = r'C:UsersxxDownloadsSample imagesnoise'
# Loop through all files in first directory
for first_file in os.listdir(first_dir):
f_path = os.path.join(first_dir, first_file)
#resized_f = Image.open(f_path)
#resized_f = resized_f.resize((687,612))
if f_path.endswith(".png"):
image = cv2.imread(f_path,0)
print(image)
# Compare each file in second directory to each file in first directory
for second_file in os.listdir(second_dir):
f2_path = os.path.join(second_dir, second_file)
if f2_path.endswith(".png"):
print(f2_path)
#image_f = PIL.Image.open(f_path)
#image_f2 = PIL.Image.open(f2_path)
#resized_f2 = Image.open(f2_path)
#resized_f2 = resized_f2.resize((687,612))
imageA = cv2.imread(first_file, 0)
imageB = cv2.imread(second_file, 0)
print (imageA)
print (imageB)
#(score, diff) = ssim(imageA, imageB, full=True)
#results.append((first_file, second_file, score))

和输出:

[[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
...
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]]
C:UsersxxDownloadsSample imagesnoisenoise_1.png
None
None
C:UsersxxDownloadsSample imagesnoisenoise_2.png
None
None
C:UsersxxDownloadsSample imagesnoisenoise_3.png
None
None

我也试着在只有1张图片的文件夹中添加更多的图片(主题"文件夹)查看是否有循环问题,但似乎不是这样。

任何帮助都是感激的。谢谢你。

所以我可以假设

有问题
imageA = cv2.imread(first_file, 0)
imageB = cv2.imread(second_file, 0)

你应该在这里使用完整的路径,所以你应该重写为

imageA = cv2.imread(f_path, 0)
imageB = cv2.imread(f2_path, 0)

cv2.imread(…)方法不知道你的图像在哪里

相关内容

  • 没有找到相关文章

最新更新