【问题标题】:converting the coordinates of a 300 dpi image to coordinates of a 72 dpi image将 300 dpi 图像的坐标转换为 72 dpi 图像的坐标
【发布时间】:2014-01-30 21:08:25
【问题描述】:

我正在开发一个 tess4J 项目并使用 tess4j,我已经获得了图像中单词的坐标。唯一的问题是,这些是 TIFF 图像的坐标。我的项目涉及在 pdf 文档中的图像上写一层文本。我认为pdf文档的分辨率是72dpi。所以坐标被变形并且放置得太宽了。如果我可以将分辨率从 300 dpi 降低到 72dpi,然后将图像传递给 tessaract,我不会得到我需要的坐标吗?如果没有,还有其他选择吗?已经尝试将坐标乘以 300/72。令人惊讶的是,这不起作用。

提前致谢!

【问题讨论】:

  • 为什么不将坐标从 72dpi 映射到 300dpi 空间(只需将它们乘以 72/300)?
  • 没有尝试过...此外我需要将坐标从 300 dpi 映射到 72 dpi 空间。我已经尝试将 x 和 y 坐标乘以 300/72。不工作。
  • 您认为 PDF 始终为 72 dpi 的假设可能不正确。
  • 但这不是 adobe 规范吗?
  • 那么我如何找出 ODF 的 dpi?

标签: coordinates image-resizing tesseract dpi


【解决方案1】:

要将 300DPI 转换为 72DPI,您需要乘以 72/300,而不是相反。使用浮点数或先乘法再除法,如 (x * 72) / 300。PDF 单位始终为 1/72 英寸。

缩小原始图像不是一个好主意,因为信息的丢失会降低输出文本的质量。

【讨论】:

    【解决方案2】:

    -(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize

    {

    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);

    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    NSLog(@"New image has w=%f, h=%f", newImage.size.width, newImage.size.height);

    返回新图像;

    }

    此代码可将任何图像更改为 72 dpi。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2013-09-22
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      相关资源
      最近更新 更多