gpt4 book ai didi

java - 如何找到所有基于图像的 PDF?

转载 作者:太空狗 更新时间:2023-10-29 21:08:23 26 4
gpt4 key购买 nike

我的系统中有很多 PDF 文档,有时我注意到文档是基于图像的,没有编辑功能。在这种情况下,我在 Foxit PhantomPDF 中进行 OCR 以更好地搜索,您可以在其中对多个文件进行 OCR。我想找到我的所有基于图像的 PDF 文档。

我不明白 PDF 阅读器如何识别文档的 OCR 不是文本。这些读者必须访问某些字段。这也可以在终端中访问。这个答案给出了如何在线程 Check if a PDF file is a scanned one 中进行的公开建议。 :

Your best bet might be to check to see if it has text and also see if it contains a large pagesized image or lots of tiled images which cover the page. If you also check the metadata this should cover most options.

我想更好地理解如何有效地做到这一点,因为如果存在一些元字段,那么它会很容易。但是,我还没有找到这样的元字段。我认为最可能的方法是查看页面是否包含具有用于搜索的 OCR 的页面大小的图像,因为它很有效并且已经在某些 PDF 阅读器中使用。但是,我不知道该怎么做。

关于 answer 的边缘检测和 Hugh 变换

在休变换中,参数空间的超正方形中有特定选择的参数。它的复杂性 $O(A^{m-2})$ 其中 m 是您看到的参数数量,如果参数多于参数,问题就很困难。 A 是图像空间的大小。福昕阅读器在其实现中最有可能使用了 3 个参数。边缘容易检测,保证效率,必须在Hugh变换前完成。损坏的页面将被忽略。其他两个参数仍然未知,但我认为它们必须是节点和一些交叉点。这些交叉点是如何计算的是未知的?确切问题的表述是未知的。

测试 Deajan 的 answer

该命令在 Debian 8.5 中有效,但我最初无法在 Ubuntu 16.04 中使其正常工作

masi@masi:~$ find ./ -name "*.pdf" -print0 | xargs -0 -I {} bash -c 'export file="{}"; if [ $(pdffonts "$file" 2> /dev/null | wc -l) -lt 3 ]; then echo "$file"; fi'
./Downloads/596P.pdf
./Downloads/20160406115732.pdf
^C

操作系统:Debian 8.5 64 位
Linux 内核:向后移植 4.6
硬件:华硕Zenbook UX303UA

最佳答案

聚会迟到了,这里有一个简单的解决方案,暗示已经包含字体的 pdf 文件不仅仅基于图像:

find ./ -name "*.pdf" -print0 | xargs -0 -I {}      \ 
bash -c 'export file="{}"; \
if [ $(pdffonts "$file" 2> /dev/null | \
wc -l) -lt 3 ]; then echo "$file"; fi'
  • pdffonts 列出 PDF 文件中的所有嵌入字体。如果包含可搜索的文本,它也必须包含字体,因此 pdffonts 将列出它们。检查结果是否少于三行是因为 pdffonts 的标题是 2 行。所以所有低于 3 行的结果都没有嵌入字体。 AFAIK,不应该有误报,尽管这是一个要问 pdffonts 开发人员的问题。

单行

find ./ -name "*.pdf" -print0 | xargs -0 -I {} bash -c 'export file="{}"; if [ $(pdffonts "$file" 2> /dev/null | wc -l) -lt 3 ]; then echo "$file"; fi'

解释:pdffonts file.pdf 如果 pdf 包含文本,将显示多于 2 行。输出所有不包含文本的 pdf 文件的文件名。

我的具有相同功能的 OCR 项目在 Github 中 deajan/pmOCR .

关于java - 如何找到所有基于图像的 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com