MATLAB: How to open multiple images sequentially for text extraction and save it in a file

image processingoptical character recognisation

I have some 50 photos which I want to extarct the text out of from, I am saving the extracted text into a text file. Problem is the current code that I am using seems to be opening the image files from the folder randomly. How do I make sure that image file opens sequentially ?
location= 'file_path\*.jpg';
ds = imageDatastore(location);
fid = fopen('noPlate.txt', 'wt');
while hasdata(ds)
img = read(ds) ; % read image from datastore
ocrResults = ocr(img)
recognizedText = ocrResults.Text;
% This portion of code writes the recognise text
fprintf(fid,'%s\n', recognizedText);
fprintf(fid,'%s\n', '\n');
end
fclose(fid);
winopen('noPlate.txt')

Best Answer

  • I think the read(ds) reads the files in the datastore in the order ds.Files{1}, ds.Files{2}, ds.Files{3}...........so on.
    Once try checking the following:
    subplot(1,2,1);imshow(read(ds));subplot(1,2,2);imshow(ds.Files{1});sgtitle(ds.Files{1})
    subplot(1,2,1);imshow(read(ds));subplot(1,2,2);imshow(ds.Files{2});sgtitle(ds.Files{2})
    subplot(1,2,1);imshow(read(ds));subplot(1,2,2);imshow(ds.Files{3});sgtitle(ds.Files{3})
    Or
    [data,info] = read(ds);
    info
    Refer to imageDatastore & read for more information