I have a large dataset of coloured images, all with one person holding a white piece of paper with a printed number. I am trying to extract the number as a class label for each person. By binarizing the image and removing small areas I can create an image as shown. But from here, all implementations of the ocr function I have attempted fail to extract the number. I have also attempted using corner extraction, but this does not work easily as some candidates are obscuring the corners of the paper with their hands. Could anyone provide some tips on how to achieve this?
Code:
clcclear allclose all% Load an image
rgbImage = imread('person11.jpeg');grayImage = rgb2gray(rgbImage);% Binarize the image.
binaryImage = grayImage > 120;% Remove small objects.
binaryImage = bwareaopen(binaryImage, 5000);figure(1)imshow(binaryImage);title('Cleaned Binary Image');% Use the 'CharacterSet' parameter to constrain OCR
results = ocr(binaryImage, 'CharacterSet', '0123456789', 'TextLayout','Block');results.Text
Output lots of different numbers, not 11!
Image:
Best Answer