首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到.jpg文件,其扩展名不小心更改为.png?

如何找到.jpg文件,其扩展名不小心更改为.png?
EN

Stack Overflow用户
提问于 2022-08-09 02:01:14
回答 2查看 87关注 0票数 0

首先,我很抱歉,因为我不知道这个问题是否属于这里。我正在为自定义数据集使用YOLOv5,并且遇到了错误Memory Error Corrupt JPEG data: 2 extraneous bytes before marker 0xd9

图像显示错误。

造成此错误的原因可能是因为某些png文件可能在重定向时被更改为jpg。这个链接是这样说的

因此,是否有办法找到真正的文件格式的图像。我有很多图像,所以手动检查每个图像不是个好主意。谢谢。

或者,您可以通过其他方法帮助我,以便删除此错误,并且我可以使用YOLOv5成功地训练数据集。

EN

回答 2

Stack Overflow用户

发布于 2022-08-09 19:48:36

您可以使用glob找到具有特定文件扩展名的图像。即

代码语言:javascript
复制
glob.glob('*.jpg')

或者使用列表比较:

代码语言:javascript
复制
jpg_files = [file for file in all_files_list if file.endswith('.jpg')]

all_files_list是一个包含所有文件名的列表。

另一种选择是:

代码语言:javascript
复制
jpg_files = list(filter(lambda x: x.endswith('.jpg'), os.listdir(r'/your/desired/directory')))

然后可以使用OpenCV加载文件并以所需的格式存储它们。

票数 0
EN

Stack Overflow用户

发布于 2022-08-09 19:58:32

大多数图像格式在开始时都有一个“签名”或“魔术数字”。

查看PNG 这里,您将看到PNG图像以以下内容开头:

代码语言:javascript
复制
89 50 4e 47 0d 0a 1a 0a

JPEG图像的开头是:

代码语言:javascript
复制
ff d8 ff

所以你最好的选择是测试前几个字节。

请注意,您还可以检查最后几个字节,以确保图像不会损坏或截断。

如果您在Windows上没有十六进制编辑器,您可以在开始编码之前使用Hexed.it online获得一些正确和破碎图像的经验。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73285785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档