微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

给定一个PDF,如何从命令行中提取图像*及其在页面上的位置*

我有一个包含文本和图像的PDF。 我想使用linux命令行从PDF中提取图像。 我可以使用pdfimages来提取图像,但我也想find该图像所在的每个页面上的位置。 pdfimages可以告诉我每个图像(从文件名)哪个页面,但是这只是它给了我。 有没有其他的FLOSS工具可以做到这一点?

如何等待进程完成使用IO.popen?

FOR循环variables中的空格问题 – 批处理脚本

文件提取正则expression式捕获组的匹配

在batch file中将input传递给程序提示

在Linux shell上并行运行多个Gradle命令

那么我认为PDF必须包含放置它们的信息,所以这应该是可能的。 另一方面,解决方案可以是例如:

使用pdftoppm将每个pdf页面转换为图像

使用pdfimages从每个页面提取图像

使用cvCvtColor将图像转换为单个8位灰度通道(用于快速分析)

使用matchTemplate对象检测

步骤1可能看起来类似于这个步骤2:

for i in {0..99} ; do pdfimages -f $((i)) -l $((i+1)) file.pdf page$((i)); done

这里的第3步*一个简单的例子

在第四步,你不应该有训练的问题,因为图像将是一个完全匹配。 matchTemplate( imagetoSearch,pdfpageImg,outputMap,'CV_TM_SQDIFF')

(*链接删除,因为它现在似乎是指向勒索软件站点

在PDF中没有保证,如果一个图像被重用,它不会是一个单独的图像。 PDF文件中的页面位置和页面上的实际大小以外的图像元数据非常少。 我写了一篇文章,解释如何将图像存储在PDF中,位于http://www.jpedal.org/PDFblog/2010/09/understanding-the-pdf-file-format-images/

一个pdftohtml命令的-xml开关,它将给出图像的位置,尺寸和源信息。

pdftohtml -xml file.pdf

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐