在bash脚本中检测损坏的图像[关闭]
image-processing
5
0

我从网络摄像头流中获取了2000张以上的图像(用于延时视频),我需要先删除所有不完整和损坏的图像,然后再将它们传递到php-gd脚本中,以对其进行编辑以制作最终视频。

是否可以使用imagemagick或其他工具检测损坏的文件?如果我尝试用feh打开损坏的图像,则会显示libpng error: Read Error控制台中的libpng error: Read Error

提前致谢!

更新:在我的情况下,建议的识别方法似乎接受了不良图像。这是一个损坏的示例http://imgur.com/YcB9n

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

尝试使用ImageMagick的identify命令。从手册页:

标识描述一个或多个图像文件的格式和特征。它还会报告图像是否不完整或损坏。

例:

$ identify foo.png
identify: NotAPNGImageFile (foo.png).

$ echo $?
1

一种替代方法是使用PIL(Python影像库)

from PIL import Image

im = Image.open("foo.png")
im.verify()

文档中

im.verify()

尝试确定文件是否损坏,而无需实际解码图像数据。如果此方法发现任何问题,它将引发适当的异常。此方法仅适用于新打开的图像。如果图像已经加载,则结果不确定。另外,如果在使用此方法后需要加载图像,则必须重新打开图像文件。

收藏
评论

我在放置了几种损坏的jpg上尝试了ImageMagick identify命令。它能够识别一些但不是全部损坏,因此,这充其量只能是部分解决方案,但是请尝试以下操作:

for f in *.JPG ; do identify $f > /dev/null || echo $f >> /tmp/fail ; done ; cat /tmp/fail
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号