python - 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 扩展名的文件。但是,其中一些图像由于无效字符而无法打开。
我真的不明白为什么会这样,我希望有人能帮助我。祝你有美好的一天 !
解决方案
好的,由于某种原因,我的计算机试图将一些 png 作为文本文件打开,这就是它无法工作的原因。当您右键单击文件并选择任何图像加载器(或者如果您使用 打开它们imread
)时,它工作正常。
无论如何,感谢您的时间和您的回答!
推荐阅读
- react-native - 我如何在 React Native 中剪切部分视图
- android-fragments - 如何在 ARFragment 中添加存储权限?
- javascript - 如何在Javascript中查询作为数组的对象的属性
- r - 将数据帧的行与“主”行/秒进行比较
- apache-spark - Spark 并行操作
- amazon-s3 - 将本地 nexus 存储库镜像到 s3
- python-3.x - 用有限的硬币找零
- sql - 如何编写一个查询以从 SQL Server 中包含相似名称的多个表中获取数据
- azure - 是否可以使用 Azure Policy 或其他任何东西来验证 Azure Pipeline 的任务?
- java - 从没有集合的数组中删除重复项,简单的问题