cv2.imwrite返回false而不是保存图像

问题描述

我正在研究保存图像的代码。而不是保存图像cv2.imwrite函数返回false。我在下面的代码中重现了该问题:

Uni_ID = 123
cam=cv2.VideoCapture(0)
rett,img = cam.read()

now = datetime.now()
dtString =  now.strftime('%d-%m-%Y')
timeString = now.strftime('%H:%M:%S')
path = 'IMG'
name = path + '/' + dtString
#     print(name)
if not os.path.exists(name):
    os.makedirs(name)
imgName = name + '/'+ str(Uni_ID) + '_' + timeString + '.jpg'
print(imgName)
cv2.imwrite(imgName,img)

最后一行的cv2.imwrite函数没有保存图像,而是返回false。代码的输出是:

IMG/03-09-2020/123_17:59:58.jpg
False

解决方法

您不能在文件名中使用:

>>> cv2.imwrite(r'123_17:59:58.jpg',np.array(i))
False
>>> cv2.imwrite(r'123_17_59_58.jpg',np.array(i))
True

如果不确定文件名是否有效,请先尝试将其打开。

>>> f = open(r'123_17:59:58.jpg','wt')
Traceback (most recent call last):
  File "<input>",line 1,in <module>
OSError: [Errno 22] Invalid argument: '123_17:59:58.jpg'

>>> f = open(r'123_17_59_58.jpg','wt')
>>>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...