问题描述
Traceback (most recent call last):
File "/home/ubuntu/PycharmProjects/image_cluster/rebuild_dataset/tool.py", line 157, in <module>
gif_webp_2_png('/data/raw_data/data_version2/')
File "/home/ubuntu/PycharmProjects/image_cluster/rebuild_dataset/tool.py", line 30, in gif_webp_2_png
cv2.imwrite(new_dir, img)
SystemError: <built-in function imwrite> returned NULL without setting an error
原因分析
出问题的代码如下:
img = cv2.imread(img_dir)
原因是img_dir是Pathlib对象,cv2无法识别该对象,需要把img_dir用 str 函数进行转换
(吐槽一下cv2, 对pathlib不太友好,PIL就可以直接识别pathlib对象,但是PIL对webp格式图片的读取就不行,cv2就又比PIL适应性好。)
解决办法
img = cv2.imread(str(img_dir))