主要内容

OCR.

使用光学字符识别识别文本

描述

例子

文本= OCR(一世返回一个ocrtext.包含来自输​​入图像的光学字符识别信息的对象,一世。该对象包含识别的文本,文本位置和指示识别结果的置信度的度量。

例子

文本= OCR(一世ROI.识别中的文本一世在一个或多个矩形区域内。这个ROI.输入包含一个m-By-4矩阵,具有m感兴趣的地区。

例子

[___] = OCR(___名称,价值使用一个或多个指定的其他选项名称,价值使用前面的任何语法对参数。

例子

全部收缩

BusinessCard = imread('businesscard.png');OCRResults = OCR(BusinessCard)
ocrResults=ocrText,带属性:Text:'MathWorks®…'字符边界框:[103x4双精度]字符信任:[103x1单精度]单词:{16x1单元格}单词边界框:[16x4双精度]单词信任:[16x1单精度]
识别为= ocrresults.text;数字;imshow(商务函);文字(600,150,识别,“背景色”,[1 1 1]);

图包含轴。轴包含2个类型图像的对象,文本。

读图像。

I=imread('handcapsign.jpg');

在I内定义一个或多个矩形的感兴趣区域。

投资回报率=[360 118 384 560];

您还可以使用IMRECT选择使用鼠标的区域:图;imshow(i);ROI = ROUND(GetPosition(IMRECT))

ocr结果=ocr(I,roi);

将识别的文本插入原始图像

IOCR = INSERTTEXT(I,ROI(1:2),OCRRESULTS.TEXT,'achorpoint'......'右特“字体大小”,16);数字;imshow(Iocr);

图中包含一个轴。轴包含图像类型的对象。

BusinessCard = imread('businesscard.png');OCRResults = OCR(BusinessCard)
ocrResults=ocrText,带属性:Text:'MathWorks®…'字符边界框:[103x4双精度]字符信任:[103x1单精度]单词:{16x1单元格}单词边界框:[16x4双精度]单词信任:[16x1单精度]
IOCR = InsertObjectAnnotation(BusinessCard,'矩形'......Ocrresults.wordboundingboxes,......OCRRESULTS.WORDCONFIDENCES);数字;imshow(Iocr);

图中包含一个轴。轴包含图像类型的对象。

BusinessCard = imread('businesscard.png'); ocrResults=ocr(名片);bboxes=定位文本(OCR结果,'mathworks''Ignorecase', 真的);Iocr = InsertShape(BusinessCard,'citntrectangle',bboxes);数字;imshow(Iocr);

图中包含一个轴。轴包含图像类型的对象。

输入参数

全部收缩

输入图像,在中指定m-借-N-By-3 TrueColor,m-借-N二维灰度或二进制格式。输入图像必须是真实的非解析值。在识别过程之前,该函数将truecolor或灰度输入图像转换为二进制图像。它使用大津的阈值技术进行转换。为获得最佳ocr结果,输入图像中小写“x”或类似字符的高度必须大于20像素。从水平轴或垂直轴上,删除任何大于+/-10度的文本旋转,以改善识别结果。

数据类型:单身的|双重的|int16|uint8.|uint16|逻辑

一个或多个感兴趣的矩形区域,指定为m-By-4元素矩阵。每一行,m,指定输入图像中的感兴趣区域,作为四元素向量[Xy宽度高度]。矢量指定左上角位置[Xy],以及感兴趣的矩形区域的大小[宽度高度],以像素为单位。每个矩形必须完全包含在输入图像中,一世. 在识别过程之前,该函数使用大津阈值将感兴趣的真彩色和灰度输入区域转换为二值区域。该函数返回矩形区域中识别为对象数组的文本。

名称值对参数

指定可选的逗号分离对名称,价值论据。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数名称1,值1,…,名称,值

例子:OCR(I,'TextLayout','块')

输入文本布局,指定为逗号分隔对,由'文本布局'以及以下之一:

文本布局 文本处理
'汽车' 确定输入图像中文本块的布局和读取顺序。
'堵塞' 将图像中的文本视为单个文本块。
'线' 将图像中的文本视为单行文本。
'单词' 将图像中的文字视为单个文字。
'特点' 将图像中的文本视为单个字符。

使用自动布局分析从包含特定格式的扫描文档中识别文本,例如双列。此设置保留返回的文本中的阅读顺序。如果输入图像包含一些文本或文本位于杂乱的场景中,您可能会得到较差的结果。如果您获得糟糕的OCR结果,请尝试与图像中的文本匹配的不同布局。如果文本位于杂乱的场景中,除了尝试不同的布局之外,尝试在图像中的文本周围指定ROI。

要识别的语言,指定为逗号分隔的配对组成'和字符向量'英语''日本人',或字符向量的单元格数组。您还可以安装安装OCR语言数据文件包装用于其他语言或添加自定义语言。指定多种语言可以同时识别所有所选语言。但是,选择多种语言可能会降低准确性并增加执行OCR所需的时间。

指定中包含的任何其他语言安装OCR语言数据文件包,使用语言字符向量与内置语言相同。您无需指定路径。

TXT = OCR(IMG,'语言','芬兰');

支持包列表OCR金宝app语言

要使用自己的自定义语言,请将培训的数据文件的路径指定为语言字符向量。您必须以格式命名文件,<>.训练有地。该文件必须位于名为'的文件夹中Tessdata.'。例如:

txt = ocr(img,'语言','path / to / tessdata / eng.traineddata');
您可以将多种自定义语言加载为字符向量的单元数组:
TXT = OCR(IMG,'语言',... {'PATH / TO / TESSDATA / ENG.TRAREDATA',...'PATH / TO / TESSDATA / JPN.TRAINTDATA'});
单元格数组中指定的所有文件的包含文件夹必须始终相同。在前面的示例中,所有训练有地单元格数组中的文件包含在文件夹的路径/到/到数据'。因为以下代码指向两个不同的包含文件夹,因此它不起作用。
TXT = OCR(IMG,'语言',... {'PATH / ONE / TESSDATA / ENG.TROREDDATA',...'路径/两个/ TESSDATA / JPN.TRAINTDATA'});
某些语言文件具有对另一种语言的依赖性。例如,印地语培训取决于英语。如果你想用印度,英语训练有地文件也必须存在于与Hindi相同的文件夹中训练有地文件这个OCR.只支持金宝app训练有地使用的文件使用tesseract-ocr.3.02或使用OCR培训师

用于生成的部署目标MATLAB®编码器™:生成的ocr可执行文件和语言数据文件夹必须位于同一位置。这个Tessdata.文件夹必须命名Tessdata.

  • 英语:C:/path/tessdata/eng.traineddata

  • 对于日语:C:/path/tessdata/jpn.trainedData.

  • 对于自定义数据文件:C:/path/tessdata/customlang.trountData.

  • C:/path/ocr_app.exe.

您可以复制英语和日本培训的数据文件:

fullfile(matlabroot,'toolbox','vision','disionutition','tessdata');

字符子集,指定为逗号分隔的配对组成'字符集'和一个字符矢量。默认情况下,字符集设置为空字符向量,''。空向量设置要搜索所指定的语言的所有字符的功能财产。您可以将此属性设置为较小的已知字符,以限制分类过程。

OCR.函数从列表中选择最佳匹配字符集. 使用关于输入图像中字符的可推断知识有助于提高文本识别的准确性。例如,如果设置字符集对于所有数字,'0123456789',该功能尝试将每个字符匹配仅为数字。在这种情况下,非数字字符可能错误地被识别为数字。

输出参数

全部收缩

认可的文本和指标,作为一个返回ocrtext.目的。该对象包含识别的文本,输入图像中识别的文本的位置,以及指示结果置信度的指标。置信度值范围是[01]并且表示百分比概率。指定时m-by-4ROI.,函数返回ocrtext.作为m-by-1阵列ocrtext.对象。

如果你的OCR.结果不是您所期望的,尝试以下选项中的一个或多个:

  • 将图像2-to-4倍增原始尺寸。

  • 如果图像中的字符靠得太近或边缘接触,请使用形态学来缩小字符。使用形态学细化字符以分离字符。

  • 使用二值化检查非均匀的照明问题。使用曲折灌输函数二向化图像。如果在二值化结果中不可见字符,则表示潜在的非均匀照明问题。尝试顶帽,使用imtophat功能,或处理消除不均匀照明的其他技术。

  • 使用感兴趣的地区ROI.选项要隔离文本。指定ROI.手动或使用文本检测。

  • 如果您的图像看起来像一个包含单词的自然场景,如街景,而不是扫描文档,请尝试使用ROI输入。此外,您可以设置文本布局财产'堵塞'要么'单词'

工具书类

[1] R. Smith。Tesseract OCR引擎概述,第九届文件分析与认可国际会议的诉讼程序(ICDAR 2007)第2卷(2007),第629-633号。

[2]史密斯,R.,D. Antonova和D. Lee。适应TESERACT开源OCR引擎,用于多语言OCR。多语种OCR国际讲习班的载体(2009)。

[3] R. Smith。通过TAB停止检测混合页面布局分析. 第十届国际文献分析与识别会议论文集。2009

扩展能力

在R2014A介绍