R pdftools返回PDF文本坐标的不同单位[关闭]

pftdvrlh  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(125)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
4天前关闭。
Improve this question
pdftools软件包中,有两个函数pdf_data()(适用于预OCR的PDF文件)和pdf_ocr_data()(无论PDF文件是否已经OCR)。

  • pdf_data()产生一个tibble列表,每个tibble有6个字段:width、height、x、y、space和text。Ex输出:
// A tibble: 2 x 6
       width  height  x      y      space  text      
       <int>  <int>   <int>  <int>  <lgl>  <chr>      
1      51     12      15     65     TRUE   Text1   
2      59     12      70     65     FALSE  Text2
  • pdf_ocr_data()会产生一个包含3个字段的字节列表:word、confidence和bbox。Ex输出:
//A tibble: 2 x 3
       word   confidence bbox             
       <chr>  <dbl>      <chr>            
1      Text1  96.8       136,546,551,647  
2      Text2  96.7       590,545,1078,625

根据Using the pdf_data function from the pdftools package efficiently,我已经确认pdf_data() x和y字段是基于与左上角的距离的坐标,即0,0。但我不知道单位是什么。
pdf_ocr_data()函数的文档解释了函数的参数,但没有解释输出。虽然word和confidence看起来相对不言自明,但我还是被bbox的元素所困扰。这似乎与单词坐标有关,然而前。我上面提供的输出是同一个PDF页面的前2个单词的结果,正如你所看到的,结果是不同的。在我的测试中,bbox的前两个值似乎分别与x和y相关,bbox[1]/x和bbox[2]/y的比值从8.4到9多一点。
因此,我的问题如下:

  1. pdf_data()提供的x和y的单位是什么?
  2. pdf_ocr_data生成的bbox字段中显示的值是什么?
    1.这些价值观是如何精确地联系在一起的?
    P.S.我没有在这里提供可重复的代码,因为这些是关于输出性质的问题,而不是关于故障排除或如何解决问题的问题。这里有一个论坛帖子:https://discuss.ropensci.org/t/text-vs-word-xy-coordinate-differences-between-pdf-data-and-pdf-ocr-data/3518问类似的问题,但没有回复该帖子。
yxyvkwin

yxyvkwin1#

如果我们以数据集为例,我们可以看到,在这种情况下,值是文本平铺的左上角,所以这里我们看到pdf_data是154 x 139

这意味着文本的Em大小为8
然而,如果我们检查源PDF,我们会看到文本的真实的值是9.9626点,我们不知道(不知道什么是单位,因为单位不是PDF中的简单常量)。因此,我们可以推测该文件是为[0 0 612 792]的介质设计的,这意味着原始文件默认为左下角,并打算使用美国字母大小。

BT
/F8 9.9626 Tf 154.69 646.077 Td [(Mazda)-333(RX4)]TJ
ET
BT
/F8 9.9626 Tf 154.69 633.724 Td [(Mazda)-333(RX4)-334(W)84(ag)]TJ
ET
BT
/F8 9.9626 Tf 154.69 621.37 Td [(Datsun)-333(710)]TJ
ET
BT
/F8 9.9626 Tf 154.69 609.016 Td [(Hornet)-333(4)-334(Driv)28(e)]TJ
ET

如果我们检查字体8,我们看到它是计算机现代10点,因此我们可以说这些字母的比例是其原始真实比例的99.6%。如果我们将154.69乘以这个比率,我们得到上面报告的左154个单位。
对于高度,我们可以从792减去139,所以左上角是原点上方653,如果我们取左下角为646.077,则有一个尴尬的差,因为6.923不靠近字母高度,因此我们可以假设两个单位基数之间的比例差再次发挥作用。
对于OCR,用于单个字母或分组为部分单词或完整单词的工作区域可能会有很大的变化,因为与具有字形的字体相比,无字形的文本不会被一致地缩放。
理论边界框的高度可能不反映真实高度,因为对于10点字符,它可能是1点高。因此,OCR坐标应始终与结果文件中的预期源输出进行比较。

现在,如果我们将上面的苹果与OCR梨进行比较,没有一个尺度是相同的,因为它们是近似值。

相关问题