Converting JPG images into a cell arrays

Illustration
Bexley - 2020-10-26T10:22:47+00:00
Question: Converting JPG images into a cell arrays

I have the following code i want to convert images  jpg (TrainingData) into cell arrays ,where each cell containing a 28-by-28 matrix representing a synthetic image of fingerprint  dataDir= fullfile('Data/'); exts = {'.jpg','.png','.tif','BMP'}; imds = imageDatastore(fullfile(dataDir),... 'IncludeSubfolders',true,'FileExtensions','.jpg','LabelSource','foldernames'); countEachLabel(imds); [TrainData, TestData] = splitEachLabel(imds, 0.5); size(TrainData); countEachLabel(TrainData); for i = 1:numImages img = readimage(TrainData, i); img = imbinarize(img); end  

Expert Answer

Profile picture of John Michell John Michell answered . 2025-11-20

sz = size(img);
RB = 28; CB = 28;
NRB = floor(sz(1)/RB);
LOR = sz(1) - NRB*RB;
NCB = floor(sz(2)/CB);
LOC = sz(2) - NCB*CB;
if LOR ~= 0
  rbs = [RB * ones(1,NRB), LOR];
else
    rbs = RB * ones(1,NRC);
end
if LOC ~= 0
    cbs = [CB * ones(1,NCB), LOC];
else
    cbs = CB * ones(1,NCB);
end

tiles = mat2cell(img, rbs, cbs, size(img,3));
See also mat2tiles in the File Exchange
And watch out for the titles that are not 28 x 28. This code does not assume that the image is an exact integer multiple of 28 in each direction, and it does not throw away any partial blocks.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!