帮助中心
使用光学字符识别识别文本
TXT = OCR(I)
txt = ocr(I, roi)
[___)= ocr (___,名称,值)
例
三种= ocr (一世)返回ocrText包含来自输入图像的光学字符识别信息的对象,一世。对象包含已识别的文本、文本位置和表示识别结果可信度的度量。
三种= ocr (一世)
三种
一世
ocrText
三种= ocr (一世,roi)识别文本一世内的一个或多个矩形区域。该roi输入包含中号4矩阵,中号感兴趣的区域。
三种= ocr (一世,roi)
roi
[___)= ocr (___,名称,值)使用一个或多个指定的附加选项名称,值配对参数,使用任何前述语法。
名称,值
全部收缩
名片= imread (“businessCard.png”);ocrResults = ocr(名片)
“MathWorks®…”' CharacterBoundingBoxes: [103x4 double] character confidence: [103x1 single] Words: {16x1 cell} WordBoundingBoxes: [16x4 double] wordconfidence: [16x1 single]
recognizedText = ocrResults.Text;图;imshow(的businesscard);文本(600,150,recognizedText,'背景颜色', [1,1,1]);
读取图像。
I = imread('handicapSign.jpg');
在I中定义一个或多个感兴趣的矩形区域。
ROI = [360 118 384 560]。
你也可以使用IMRECT用鼠标选择一个区域:图;imshow(I);ROI = ROUND(为getPosition(imrect))
ocrResults = OCR(I,ROI);
将识别出的文本插入到原始图像中
Iocr = insertText (roi(1:2),我ocrResults.Text,“AnchorPoint”,…'RightTop','字体大小',16);图;imshow(IOCR);
IOCR = insertObjectAnnotation(的businesscard,'长方形',…ocrResults.WordBoundingBoxes,…ocrResults.WordConfidences);图;imshow(IOCR);
名片= imread (“businessCard.png”);ocrResults = ocr(名片);bboxes = locateText (ocrResults,“MathWorks公司的,'IGNORECASE',真正的);Iocr = insertShape(名片,'FilledRectangle',bboxes);图;imshow(IOCR);
输入图像,在规定的中号-通过-ñ-by-3真彩,中号-通过-ñ2-d灰度或二进制格式。输入图像必须是真实的,非稀疏值。函数转换真彩或灰度的输入图像为二进制图像,识别处理之前。它采用了大津的阈值技术的转换。为了获得最佳的OCR结果,在输入图像中一个小写的“x”,或类似的字符的高度,必须大于20个像素大。从水平或垂直轴,除去任何文本转大于+/- 10度,以提高识别结果。
数据类型:单|双|INT16|uint8|UINT16|合乎逻辑
单
双
INT16
uint8
UINT16
合乎逻辑
感兴趣的一个或多个矩形区域,指定为中号-by-4元素矩阵。每一行,中号时,指定的输入图像内的感兴趣区域,作为四元素矢量,[Xÿ宽度高度]。向量指定左上角的位置,[Xÿ],和感兴趣的矩形区域的大小,[宽度高度],以像素为单位。每个矩形必须完全包含在输入图像中,一世。识别过程之前,函数使用大津的阈值来转换真彩和感兴趣的二进制区域灰度的输入区域。在函数返回文本在矩形区域识别为对象的数组。
指定可选的用逗号分隔的对名称,值参数。的名字是参数的名称和价值是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N。
的名字
价值
名1,值1,...,NameN,值N
OCR(I, 'TextLayout的', '阻止')
'TextLayout的'
“汽车”
“块”
'线'
“词”
输入文本布局,指定为逗号分隔的一对组成的“TextLayout“还有下面的一条:
TextLayout
使用自动布局分析来识别从包含特定的格式,扫描的文档的文本,如双列。此设置保存在返回的文本阅读顺序。你可能会得到不好的结果,如果你输入的图像包含文本的少数地区或文本位于凌乱的场景。如果你得到可怜的OCR结果,尝试在图像的文本匹配不同的布局。如果文本位于一个混乱的场面,尽量除了尝试不同的布局,指定在图像中的文本的投资回报率。
“语言”
“英语”
“日本”
语言识别,指定为逗号分隔的一对组成的“语言'和字符向量“英语”,“日本”或字符向量的单元阵列。您也可以安装安装OCR语言数据文件包装对其他语言或添加自定义语言。指定多个语言使得所有选定语言的同时识别。但是,选择一种以上的语言可能会降低精度,提高它需要进行OCR的时间。
语言
要指定的任何一种都包含在其他语言安装OCR语言数据文件包,以与内置语言相同的方式使用语言字符向量。您不需要指定路径。
txt = ocr (img,“语言”,“芬兰”);
支持包OCR语言万博1manbetx列表
南非荷兰语的
“阿尔巴尼亚”
'古希腊'
'阿拉伯'
“阿塞拜疆”
'巴斯克'
“白俄罗斯”
'孟加拉'
'保加利亚语'
加泰罗尼亚语的
“切诺基”
'简体中文'
'中国传统的'
“克罗地亚”
“捷克”
“丹麦”
'荷兰人'
“世界语”
'EsperantoAlternative'
“爱沙尼亚”
“芬兰”
“法兰克人的”
“法国”
加利西亚的
'德语'
“希腊”
“希伯来语”
'印地语'
'匈牙利'
“冰岛”
'印度尼西亚'
“意大利”
“ItalianOld”
埃纳德语的
“韩国”
“拉脱维亚”
“立陶宛”
“马其顿”
马来语的
“马拉雅拉姆语”
“马耳他”
'MathEquation'
“MiddleEnglish”
“MiddleFrench”
“挪威”
'抛光'
“葡萄牙”
“罗马尼亚”
'俄语'
“SerbianLatin”
斯洛伐克语的
“斯洛文尼亚”
“西班牙”
'SpanishOld'
“斯瓦希里语”
'瑞典'
“他加禄语”
“泰米尔”
“泰卢固语”
“泰国”
“土耳其”
'乌克兰'
要使用自己定制的语言,指定路径训练有素的数据文件作为语言特征向量。您必须命名格式文件,<语言>。traineddata。该文件必须位于一个名为'tessdata”。例如:
traineddata
tessdata
TXT = OCR(IMG, '语言', '路径/到/ tessdata / eng.traineddata');
txt = ocr(img,'Language',…{“路径/ / tessdata / eng.traineddata”,…的路径/ / tessdata / jpn.traineddata});
路径/到/ tessdata
txt = ocr(img,'Language',…{“路径/一/ tessdata / eng.traineddata”,…的路径/两/ tessdata / jpn.traineddata});
OCR
tesseract-ocr
对于所产生的部署目标MATLAB®编码器™:生成的OCR文件夹必须协同定位的可执行文件和语言数据文件。该tessdata文件夹必须命名tessdata:
英语:C:/path/tessdata/eng.traineddata
C:/path/tessdata/eng.traineddata
日本:C: / / tessdata / jpn.traineddata路径
C: / / tessdata / jpn.traineddata路径
对于自定义的数据文件:C: / / tessdata / customlang.traineddata路径
C: / / tessdata / customlang.traineddata路径
C:/path/ocr_app.exe
你可以从以下网站复制英文和日文训练过的数据文件:
完整文件(matlabroot, '工具箱', '视觉', 'visionutilities', 'tessdata');
'字符集'
“”
字符子集,指定为逗号分隔的一对组成的“字符集和一个字符向量。默认情况下,字符集被设置为空字符向量,“”。方法指定的语言中的所有字符语言财产。您可以将此属性设置为一组较小的已知字符,以约束分类过程。
字符集
该OCR功能选择从最佳匹配字符集。使用对输入图像中的文字推断的知识有助于提高文字的识别精度。例如,如果你设置字符集所有的数字组成,'0123456789'中,函数尝试每个字符仅位数匹配。在这种情况下,一个非数字字符可以正确得到公认的数字。
'0123456789'
识别的文本和度量,返回一个ocrText对象。该对象包含已识别的文本、已识别文本在输入图像中的位置以及表示结果可信度的度量。置信值范围是[0 1],表示一个百分比概率。当你指定一个中号-by-4roi,在函数返回ocrText作为中号1组ocrText对象。
如果你的OCR结果不是你所期望的,尝试以下一个或多个选项:
增加图像2至4倍的原始大小。
如果图像中的字符靠得太近或它们的边缘是接触,使用形态学变薄的字符。使用形态变薄字符分隔的字符。
使用二值化检查不均匀的照明问题。使用graythresh和imbinarize功能,以二值化图像。如果字符不是在二值化的结果可见,这表明潜在的非均匀照明问题。尝试顶帽子,使用imtophat函数,或其它技术处理除去未均匀的照明。
graythresh
imbinarize
imtophat
使用感兴趣的区域roi选择隔离文本。指定roi手动地或使用文本检测。
如果你的图像看起来像一个天然的场景包含单词,像街道场景,而不是扫描文档,请尝试使用一个ROI输入。此外,您还可以设置TextLayout属性“块”或“词”。
[1] R.史密斯。在正方体OCR引擎的概述上文献分析与识别的第九届国际会议论文集(2007年ICDAR)第2卷(2007),第629-633。
[2] Smith, R., D. Antonova,和D. Lee。适应的Tesseract开源OCR引擎OCR多语种。多语言OCR国际研讨会论文集,(2009)。
[3]r .史密斯。混合页面布局分析通过制表符停止检测。在文档分析与识别的第10届国际会议论文集。2009年。
使用注意事项和限制:
'TextLayout的',“语言”,'字符集'必须在编译时间常数。
这个函数生成的代码使用了预编译特定于平台的共享库。
OCR教练|graythresh|imbinarize|imtophat|insertShape|ocrText
insertShape
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
选择一个网站来获取可用的翻译内容,并查看本地事件和报价。根据你的位置,我们建议你选择:。
你也可以从以下列表中选择一个网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
请联系您当地的办事处