OCR前如何知道图像是否颠倒?如果需要变换或校正方向,如何知道 90/180 变换是否正确?
How to know if image is upside down before OCR ? if Transform or correcting orientation needed, how to know 90/180 transformation is right?
我正在处理多页扫描文本文档,我使用 FineReader 12 SDK 作为底层 OCR 引擎。有时,文档被扫描倒置或方向不同,导致所有结果识别字符都是无法识别的符号。
- 有没有办法知道 recognition\analysis\process 之前文档的方向是否正确?
- 如何在文档上进行正确的转换或定位而不是反复试验?
- 文档始终是英文的,如果检测到的语言是英文,我们是否可以强制执行并以此为基础进行转换?
感谢任何帮助。
可以使用自定义 .ini 处理配置文件解决此问题。您可以使用正确的属性自动检测方向和倾斜,然后应用或禁止方向校正 and/or 校正。
在引擎初始化和识别之间的代码中,按照 FRE 文档第 Working with Profiles
部分中的描述调用此方法
IEngine::LoadProfile
在您的项目中的某处创建一个新文件 document.ini
并将其传递给此方法调用,以便告诉 SDK 在处理您的文件之前检查此文件中的属性。
在您新创建的文件中添加这些行:
[PageProcessingParams]
PerformPreprocessing = TRUE <- allows engine to preprocess image
PerformAnalysis = TRUE
PerformRecognition = TRUE
[PagePreprocessingParams]
CorrectGeometry = TSPV_Auto
CorrectInvertedImage = TRUE
CorrectOrientation = TRUE <- correct orientation automatically
CorrectSkew = TSPV_Yes <- correct skew automatically
[OrientationDetectionParams]
OrientationDetectionMode = ODM_Normal <- detect orientation automatically
ProhibitClockwiseRotation = FALSE |
ProhibitCounterclockwiseRotation = FALSE <-| allow all orientations
ProhibitUpsideDownRotation = FALSE |
如果您出于任何原因不想使用文件来设置这些属性,您可以在代码中调用它们。浏览一下描述所有道具对象树的文档。使用文件更容易理解您在做什么,而无需浏览数百行代码。
对于您的语言问题,我建议您使用 RecognizerParams 并强制执行特定属性。同样,请查看自定义配置文件的文档,因为它非常强大。
[RecognizerParams]
TextLanguage = English <- force english
LanguageDetectionMode = TSPV_No <- TSPV_Yes or TSPV_No are acceptable values
完成此操作后,您应该可以开始了,所有图像文件都应该接近 0° 方向进行处理。
根据文档方向选择语言是一个非常具体的工作流程,唯一的选择就是对其进行编码。
祝你项目顺利!
我正在处理多页扫描文本文档,我使用 FineReader 12 SDK 作为底层 OCR 引擎。有时,文档被扫描倒置或方向不同,导致所有结果识别字符都是无法识别的符号。
- 有没有办法知道 recognition\analysis\process 之前文档的方向是否正确?
- 如何在文档上进行正确的转换或定位而不是反复试验?
- 文档始终是英文的,如果检测到的语言是英文,我们是否可以强制执行并以此为基础进行转换?
感谢任何帮助。
可以使用自定义 .ini 处理配置文件解决此问题。您可以使用正确的属性自动检测方向和倾斜,然后应用或禁止方向校正 and/or 校正。
在引擎初始化和识别之间的代码中,按照 FRE 文档第 Working with Profiles
IEngine::LoadProfile
在您的项目中的某处创建一个新文件 document.ini
并将其传递给此方法调用,以便告诉 SDK 在处理您的文件之前检查此文件中的属性。
在您新创建的文件中添加这些行:
[PageProcessingParams]
PerformPreprocessing = TRUE <- allows engine to preprocess image
PerformAnalysis = TRUE
PerformRecognition = TRUE
[PagePreprocessingParams]
CorrectGeometry = TSPV_Auto
CorrectInvertedImage = TRUE
CorrectOrientation = TRUE <- correct orientation automatically
CorrectSkew = TSPV_Yes <- correct skew automatically
[OrientationDetectionParams]
OrientationDetectionMode = ODM_Normal <- detect orientation automatically
ProhibitClockwiseRotation = FALSE |
ProhibitCounterclockwiseRotation = FALSE <-| allow all orientations
ProhibitUpsideDownRotation = FALSE |
如果您出于任何原因不想使用文件来设置这些属性,您可以在代码中调用它们。浏览一下描述所有道具对象树的文档。使用文件更容易理解您在做什么,而无需浏览数百行代码。
对于您的语言问题,我建议您使用 RecognizerParams 并强制执行特定属性。同样,请查看自定义配置文件的文档,因为它非常强大。
[RecognizerParams]
TextLanguage = English <- force english
LanguageDetectionMode = TSPV_No <- TSPV_Yes or TSPV_No are acceptable values
完成此操作后,您应该可以开始了,所有图像文件都应该接近 0° 方向进行处理。 根据文档方向选择语言是一个非常具体的工作流程,唯一的选择就是对其进行编码。
祝你项目顺利!