【发布时间】:2021-03-21 05:38:55
【问题描述】:
我想使用 open-CV::cv2.imread() 从桌面上名为 no 的文件夹中读取一些图像,调整图像大小,然后将它们写到名为 no_images 的新文件夹中。
问题是我收到cv2.resize() 的错误消息:OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4045: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
import cv2
import glob
path = 'C:/Users/jimmy/Desktop/archive/no'
image_no = 1
for file in glob.glob(path):
try:
image_read = cv2.imread(str(path) + '/' + str(file) + '.jpeg', cv2.IMREAD_GRAYSCALE)
resized_image = cv2.resize(image_read, (100, 100))
path2 = 'C:/Users/jimmy/no_images/'
cv2.imwrite(str(path2) + str(image_no) + '.jpeg', resized_image)
image_no += 1
except Exception as e:
print(str(e))
当我尝试仅调整 no 文件夹中名为 1 no 的第一张图像(见下文)时,它工作正常。因此,我确信至少第一张图像没有损坏,那么为什么在我运行循环时我没有在 no_image 文件夹中获得任何调整大小的图像?
path = 'C:/Users/jimmy/Desktop/archive/no'
img = cv2.imread(str(path) + '/' + '1 no' + '.jpeg', cv2.IMREAD_GRAYSCALE)
resized_image = cv2.resize(img, (100, 100))
path2 = 'C:/Users/jimmy/no_images/'
cv2.imwrite(str(path2) + 'new1' + '.jpeg', resized_image)
【问题讨论】:
-
您是否尝试从您的列表中删除第二张图片?你得到同样的错误吗? stackoverflow.com/questions/60837231/…
-
可能是计算机找不到其中一个文件。如果找不到文件,imread 将返回 None,因此您可以执行类似 `if imread is None; print('找不到文件', fname)