【发布时间】:2018-10-16 06:18:09
【问题描述】:
我正在尝试缩放一千张图像并将其保存到一个目录中。
我成功调整了图像大小。但是,保存时会发生错误。
代码如下。请帮帮我。
import cv2
import numpy as np
import os
def scaling_shirink(addr):
img = cv2.imread(addr)
height, width = img.shape[:2]
shrink = cv2.resize(img, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
cv2.imshow('Shrink', shrink)
cv2.waitKey(0)
cv2.destroyAllWindows()
count = 0
IMAGE_DIR_BASE = 'C:/ClassShared\Data/CM_ML_IMG_181011/CASE_01/FPS_10_PNG'
image_file_list = os.listdir(IMAGE_DIR_BASE)
for file_name in image_file_list:
image = scaling_shirink(IMAGE_DIR_BASE + '/' + file_name)
cv2.imwrite('C:/ClassShared\Data/CM_ML_IMG_181011/CASE_01/34_sdetect_db1/' + '_' + "%04d" % (count) + '.png', image)
count = count + 1
错误信息如下。
Traceback (most recent call last):
File "C:/PycharmProjects/TS_S/Scailing.py", line 19, in <module>
image = scaling_shirink(IMAGE_DIR_BASE + '/' + file_name)
File "C:/PycharmProjects/TS_S/Scailing.py", line 8, in scaling_shirink
height, width = img.shape[:2]
AttributeError: 'NoneType' object has no attribute 'shape'
我不明白为什么它说 AttributeError: 'NoneType' 对象没有属性 'shape'
【问题讨论】:
-
cv2.imread(addr)返回None。你确定addr是正确的吗?该目录中是否有任何非图像文件? -
确保它是正确的,如果我没有 for 语句运行,那么它运行良好。
-
上面的代码有点错误,scaling_shirink函数的返回是shirink。
-
如果有问题,请修复它。如果您不向我们展示真实代码,我们将无能为力。
-
我解决了这个问题哈哈,这很简单!谢谢你回答约翰:)
标签: python opencv image-processing scale attributeerror