ocr
使用光学字符识别技术识别文本
说明
返回一个由 txt = ocr(ds)ocrText 对象组成的元胞数组,其中每个对象都包含针对数据存储 ds 中指定的感兴趣区域 (ROI) 的、对应图像的识别结果。使用此语法对一组图像执行 OCR 操作。默认情况下,ocr 函数假设每个 ROI 仅包含一行文本。若要处理可能包含多行文本的感兴趣区域 (ROI),请将 LayoutAnalysis 名称-值参量设置为 "block"。
支持上述语法中的任何参量组合,且可使用一个或多个名称-值参量指定选项。例如,txt = ocr(___,Name=Value)LayoutAnalysis="page" 将图像视为包含文本模块的一页。
示例
输入参数
名称-值参数
输出参量
提示
光学字符识别 (OCR) 语言数据文件为 Tesseract OCR 引擎提供了预训练的语言模型,从而能够准确、高效地提取多种语言的文本。这些文件旨在与 Computer Vision Toolbox™ 集成,使您能够利用其跨多种语言的高级 OCR 功能。有关安装这些语言数据文件、启用第三方语言支持,以及使用预训练模型配合 ocr 函数进行多语言文本识别的分步指南,请参阅安装 OCR 语言数据文件。有关 OCR 工作流和基本用法的概述,请参阅Getting Started with OCR。
如果您的 OCR 识别结果与预期不符,请尝试以下一种或多种选项:
将图像尺寸放大 2 至 4 倍。
如果图像中的字符间距过近或边缘相互接触,请使用形态学处理来使字符间距变大。利用字形来缩减字符的大小,有助于在字符之间创造出空间。
使用二值化来检查非均匀照明问题。使用
graythresh和imbinarize函数对图像进行二值化处理。如果二值化结果中无法看到字符,则该图像可能存在光照不均匀的问题。尝试使用“高顶帽滤波”方法、imtophat函数,或其他用于消除非均匀照明的技术。使用
roi参量来隔离文本。您可以手动指定roi,也可以使用文本检测功能。如果您的图像看起来像是一幅包含文字的自然场景(例如街景),而不是扫描的文档,请尝试将
LayoutAnalysis参量设置为"Block"或"Word"。请确保图像中的文字为深色,背景为浅色。要实现这一点,可以在将图像传递给
ocr函数之前,先对其进行二值化并反相处理。
参考
[1] Smith, Ray. An Overview of the Tesseract OCR Engine. In Ninth International Conference on Document Analysis and Recognition (ICDAR 2007), 629–33. IEEE, 2007. https://doi.org/10.1109/ICDAR.2007.4376991."
[2] Smith, R., D. Antonova, and D. Lee. Adapting the Tesseract Open Source OCR Engine for Multilingual OCR. Proceedings of the International Workshop on Multilingual OCR, (2009).
[3] R. Smith. Hybrid Page Layout Analysis via Tab-Stop Detection. Proceedings of the 10th international conference on document analysis and recognition. 2009.





