Chinese Simplified (简体中文)

处理图像

图像处理基本场景可处理 FRDocument 对象内的图像,该对象即表示正在处理的文档。

打开图像

请执行下列操作之一将图像载入文档:

所有这些方法会接收 PrepareImageMode 对象作为参数,该对象支持您指定图像预处理的不同参数。可调用IEngine::CreatePrepareImageMode 函数创建该对象,根据需要更改其属性,然后将其传递给需要它的函数。

ImageDocument 结构

文档页面通过 IFRPage::ImageDocument 属性提供对图像的访问。ABBYY FineReader Engine 中每个打开的图像,即所谓 "内部格式"的每个图像,由 ImageDocument 对象表示,该对象包括4个图像平面。每个图像平面对应一个 Image 对象:

  • 黑白 平面。为源图像的黑白副本。副本歪斜或未歪斜取决于内部文件准备模式(请参见 IPrepareImageMode::CorrectSkewMode 属性的描述)。
  • 灰色 平面。为源图像的灰色副本。副本歪斜或未歪斜取决于内部文件准备模式(请参见 IPrepareImageMode::CorrectSkewMode 对象的描述)。如果源图像为黑白色,则该页面与黑白平面一样。
  • 彩色 平面。这是源图像的彩色副本。副本歪斜或未歪斜取决于内部文件准备模式(请参见 IPrepareImageMode::CorrectSkewMode 对象的描述)。如果源图像为黑白色,则该页面与黑白平面一样;如果为灰色,则该页面与灰色平面一样。
  • 预览。用于在用户界面中显示预览图像的彩色小图像。它是否能以内部格式在文件中使用尚不确定。该预览图像是否可用取决于内部文件准备模式(请参见 IPrepareImageMode::CreatePreview 属性的描述)。

上述每个图像平面有自己的尺寸和分辨率。黑白、灰色和彩色图像的尺寸和分辨率一样。由于图像文档可能由歪斜的图像组成,ImageDocument 对象有一套坐标转换函数。借助 ICoordinatesConverter::ConvertCoordinates 函数将像素坐标从一个全尺寸图像平面转换到预览图像平面,然后再转换回来。黑白、灰色和彩色图像平面上的像素坐标相同。切记,识别函数会使用图像准备后收到的图像((因此,页面可能会歪斜)。

您可以通过 FRDocument 对象的 AddImageDocument 方法将已创建的 ImageDocument 对象添加到文档。

图像修改

有多种方式在打开图像后可对其进行修改:通过 ImageDocument 对象的方法,通过 ImageModification 对象,通过 FRPageFRDocument 对象的方法。

这些对象提供许多 图像预处理 方法。这些方法有些只适合照片,有些则可适用于所有类型的文档。有些方法会提高识别质量,而有些只提升图像的视觉表现,但会降低识别质量。最后一种方法只可在识别后使用。请仔细阅读对每种方法的描述以了解该方法是否可用于您的场景。下面为我们建议的预处理方法使用顺序(请仅选用列表中适合您场景的方法):

  • 提高识别质量:
    1. 剪裁图像(通过 ImageDocument 对象的 CropImage 方法)
    2. 增强局部对比度(通过 ImageDocument 对象的 EnhanceLocalContrast 方法)
    3. 调整方向(通过含必需参数的 ImageDocument 对象的 Transform 方法)
    4. 翻转或镜像(通过含必需参数的 ImageDocument 对象的 Transform 方法)
    5. 纠正几何畸变(通过FRPage 对象的 CorrectGeometricalDistortions 方法)
    6. 纠正歪斜(通过 ImageDocument 对象的 CorrectSkew 方法)
    7. 拆分跨页(通过 FRDocument 对象的 SplitPages 方法)
    8. 去除垃圾(通过 ImageDocument 对象的 RemoveGarbage 方法)
    9. 去除噪声(通过 ImageDocument 对象的 RemoveNoise 方法)
    10. 去除运动模糊(通过 ImageDocument对象的 RemoveMotionBlur 方法)
    11. 去除彩色对象(通过 ImageDocument 对象的 RemoveColorObjects 方法;如果需要指定色调和/或将移除的对象保存为单独的图像,则借助 RemoveColorObjectsEx 方法)
  • 改善图像外观:
    1. 均衡亮度并且以白色为背景(通过ImageDocument 对象的 EqualizeBrightness 方法)
    2. 平滑图像纹理(通过 ImageDocument 对象的 SmoothTexture 方法)
    3. 抖动图像(通过 ImageDocument 对象的 DitherImage 方法)

请注意,所有这些预处理方法都应用于打开的图像。您可以在图像打开阶段对其做一些修改。请参见 PrepareImageMode 对象的描述进一步了解打开期间的图像预处理。

FineReader Engine 提供通过 ImageModification 对象附加图像编辑功能(翻转、拉伸等等)。请执行以下操作进行图像修改:

  1. 借助 Engine 对象的 CreateImageModification 方法创建一个 ImageModification 对象。
  2. 指定必需的参数。
  3. 调用将 ImageModification 对象作为输入参数的 IImageDocument::Modify 方法。只有在调用此方法时,更改才会生效。
  4. 使用 IImageDocument::SaveModified 方法保存更改。

重要事项! 图像修改直到 IImageDocument::SaveModified 方法被调用后才会得到保存。如果 ImageDocument 对象在调用该方法前被释放,则修改不会得到保存。

图像保存

您可以使用 Image 对象的 WriteToFile 将当前图像平面按指定格式保存到图像文件中。

请注意,虽然 ImageDocument 对象提供多种保存方法 (SaveToSaveToFile),但是这些方法不适用于将图像保存为外部格式的情况。这些方法将 ImageDocument 对象的内容保存为 ABBYY FineReader Engine 内部格式,任何外部程序无法对其进行查看。

ABBYY FineReader Engine 也提供将多个图像保存入单个图像文件的功能。通过 MultipageImageWriter 对象:

  1. 通过 Engine 对象的 CreateMultipageImageWriter 方法创建 MultipageImageWriter 对象。
  2. 通过 MultipageImageWriter 对象的 AddPage 方法将图像添加到多页图像文件的末尾。每个添加的图像都呈现为单个页面。
  3. 在使用新创建的图像文件之前,必须释放 MultipageImageWriter 对象的所有引用。

另请参阅

支持的图像格式

文档扫描提示

拍照提示

03.07.2024 8:50:25

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.