使用Matlab的ocr进行文本识别

5 ocr matlab image-processing matlab-cvst

我正在尝试对这张图片进行OCR-

在此输入图像描述

这就是我正在使用ocrMATLAB-

I=imread('N.jpg');
r = ocr(I,'TextLayout','Word')
Run Code Online (Sandbox Code Playgroud)

但不是N因为Text这是我得到的 -

r = 

  ocrText with properties:

                      Text: 'I\/

'
    CharacterBoundingBoxes: [5x4 double]
      CharacterConfidences: [5x1 single]
                     Words: {'I\/'}
         WordBoundingBoxes: [276 120 13 7]
           WordConfidences: 0.7718
Run Code Online (Sandbox Code Playgroud)

所以,基本上我得到的I\/是文字.我怎么解决这个问题?

Ben*_*_11 4

您可以使用垂直线结构元素放大图像,以垂直拉长符号并使其看起来更像 N。

例如:

clear
clc

I=imread('N.jpg');

%// Line oriented at 90 degrees.
SE = strel('line',4,90);
I = imdilate(I,SE);

imshow(I)

r = ocr(I,'TextLayout','Word')
Run Code Online (Sandbox Code Playgroud)

图像:

在此输入图像描述

啊现在看起来像N...

并输出:

r = 

  ocrText with properties:

                      Text: 'N

'
    CharacterBoundingBoxes: [3x4 double]
      CharacterConfidences: [3x1 single]
                     Words: {'N'}
         WordBoundingBoxes: [276 118 13 11]
           WordConfidences: 0.8150
Run Code Online (Sandbox Code Playgroud)

耶!

  • 是的,我同意你的观点@rayryeng,这也让我很生气。这是两天内我的答案第二次被否决,我真的不明白为什么。我的意思是,我知道这个答案不是最优雅或最成熟的答案,但它很好地回答了问题,OP 对此很高兴...... (3认同)