2009-02-07 66 views

回答

2

我觉得这里更准确的说法是resampling。您希望像素分辨率足够高以支持准确的OCR。字体大小(例如在points中)通常以长度为单位而不是像素来测量。由于72点= 1英寸,我们需要每分300/72像素的分辨率为300 dpi(“每英寸像素数”)。这意味着典型的12点字体具有50个像素的高度(或者更准确地说,基线到单行距文本的基线距离)。

理想情况下,您的源文档应该以给定字体大小的适当分辨率进行扫描,以便图像中的字体大约为50像素高。如果分辨率过高/过低,您可以使用图形程序轻松重新采样图像(例如GIMP)。您也可以通过图形库以编程方式执行此操作,例如ImageMagick,它具有许多编程语言的接口。

1

OCR软件通常设计为使用“正常”字体大小。从图像角度来看,这意味着它会查找大概在30到100像素高度范围内的字母。更高分辨率的图像会产生字体,这些字体对于OCR软件来说非常大,以致无法高效处理。类似地,较低分辨率的图像将不能提供足够的像素以供软件识别字母。

+0

奇怪的是,我在字体大小为12的情况下抓取了verdana,并且遇到了它。其他图像处理完成,例如将其制作为二进制图像。 – Zombies 2009-02-07 23:30:10

+0

更新:WOW,将图像大小增加2,从而将其放入该目标范围。似乎工作很好atm!仍在玩耍。 – Zombies 2009-02-07 23:32:06

2

无论何时将像素图像与具有图片大小的物理设备相关联,DPI都有意义。就OCR而言,通常意味着扫描的分辨率,即每扫描一英寸将获得多少像素。 12点字体打算以每行12/72英寸打印,而大写字符可能会填充大约80%;因此在300 DPI扫描时它的高度约为40像素。

许多图像格式都在其中记录了DPI。如果图像被扫描,这应该是扫描仪的确切设置。如果它来自数码相机,它总是会说72 DPI,这是EXIF规范要求的默认值;这是因为相机无法知道图像的原始尺寸。使用成像程序创建图像时,可能有机会将DPI设置为任意值。这对于指定如何使用最终图像很方便,并且与图像中包含的细节无关。

这里有一个前面的问题,要求调整图像的细节: How do I do high quality scaling of a image?

1

“我该怎么做......我的印象是dpi是用于显示器,而不是图像格式。”

DPI代表每英寸点数。它与监视器有什么关系?那么,我们有一个由三个RGB子像素组成的像素。新闻部越高,你就会进入这个空间的细节越多。

DPI是显示和打印的有用测量,但没有什么用处......实际上,对于图像格式本身没有任何用处。

在某些格式中标记DPI的原因是指示设备以该分辨率显示,但从我所了解的情况来看,几乎所有设备都忽略该指令,并尽最大努力优化特定输出的图像。

您可以将72 dpi以图像格式更改为1 dpi或6000 dpi,并且不会对显示器造成任何影响。 “升级/缩小到300 dpi”是没有意义的。重采样也不会改变DPI。在Photoshop中尝试,在更改DPI时取消选中“重新取样”,您将看不到任何区别。它不会变得更大或更小。

DPI对图像格式IMO完全没有意义。

0

如果您的目标是OCR,DPI在图像中原始扫描文档中的每英寸点数是有意义的。如果你的dpi太低,信息就会永远消失,即使是双三次插值也无法恢复它。如果你的dpi太高,很容易丢掉位。

为了完成工作;我是netpbm/pbmplus工具集的忠实粉丝;该工具的开头是pnmscale,但是如果你有一个位图你想考虑相关工具,如pbmreduce