OCR function does not recognize number 8

Hello,
I do have a Problem with the ocr Function of Matlab.
It does a very poor job, particulary in recognizing the number 8.
untitled.bmp
This the i am giving into the ocr function, however, the ocr funktion does return 6 or 9 or 5 more often, than it recognizes an 8.
I added some pictures in the attached zip archive if somebody wants to have a go.
This is the code i am using:
image=rgb2gray(img_rgb(leftedge:rigthedge,upperedge:loweredge);
OcrObjekt=ocr(image,'CaracterSet','0123456789.','Textlayout','Word');
result=strtrim(OcrObjekt.Words{1});
Thank you for your answers!

2 Kommentare

KALYAN ACHARJYA
KALYAN ACHARJYA am 4 Sep. 2019
Bearbeitet: KALYAN ACHARJYA am 4 Sep. 2019
May work?
Do some sort of preprocessing on images before applying the OCR.
Niklas Arold
Niklas Arold am 6 Sep. 2019
I did try a lot of different techniques for preprocessing, but none of them gave acceptable results.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Devineni Aslesha
Devineni Aslesha am 10 Sep. 2019

0 Stimmen

While passing the image data to ocr function, no need to convert the image from RGB to gray as ocr function converts truecolor or grayscale input images to a binary image, before the recognition process using Otsu’s thresholding technique.
Use the below code for reference.
I = imread('Image8.png');
txt = ocr(I,'CharacterSet','0123456789.','Textlayout','Word');
txt.Text
Here, Image8 is the image provided in the question. It is showing the correct result.
Doc Link:

Kategorien

Mehr zu Convert Image Type finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2019a

Gefragt:

am 4 Sep. 2019

Beantwortet:

am 10 Sep. 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by