首页 > 解决方案 > CV2 imwrite 生成无法打开的图像

问题描述

我正在尝试使用 cv2 创建和保存多个图像。
我的代码几乎可以工作:图像保存到正确的目录中,但其中一些无法打开,因为它们包含无效字符。关于它的奇怪之处在于,每次我运行我的代码时,损坏的图像数量从来都不是相同的:有时只有一个图像被损坏,有时它们都被损坏,......

我尝试检查返回的结果,imwrite但它总是返回True
我尝试将图像高度更改为 20,它看起来效果更好(根本没有损坏的图像)。但是当我提高高度值时,会出现更多损坏的图像。

我在 Linux 上使用 python3.5。

这是我的代码:

import numpy as np
import cv2

# Image dimensions
img_height = 361
img_width = 20

# Image to save 8 times
img = np.zeros((img_height, img_width, 3), np.uint8)

# Save 8 images in the specified folder
for img_cnt in range(8):
    filename = str(img_cnt) + ".png"
    cv2.imwrite("/home/goowza/Img_Test/" + filename, img)

代码运行没有问题,当我打开我的Img_Test目录时,我有 8 个正确命名为 .png 扩展名的文件。但是,其中一些图像由于无效字符而无法打开。

我真的不明白为什么会这样,我希望有人能帮助我。祝你有美好的一天 !

标签: pythonnumpyopencv

解决方案


好的,由于某种原因,我的计算机试图将一些 png 作为文本文件打开,这就是它无法工作的原因。当您右键单击文件并选择任何图像加载器(或者如果您使用 打开它们imread)时,它工作正常。

无论如何,感谢您的时间和您的回答!


推荐阅读