MATLAB: Read and Display Selected Image from a Folder Based on Dimension

displayread

I have a folder that contains 16 images. From these images, 9 of them have a dimension of 1280×1024, and the rest of them have different dimensions. How can I read and display these 9 images only?
folder = 'C:\Users\Documents\PhD\Analysis\Hot-Spot\';
jpeg_files = dir(fullfile(folder,'*.jpg'));
nfiles2 = length(jpeg_files);
for k = 1:nfiles2
currentimage{k} = imread(fullfile(folder,jpeg_files(k).name));
figure; imshow(currentimage{k}); % creates a new window for each image
end

Best Answer

  • Try this
    folder = 'C:\Users\Documents\PhD\Analysis\Hot-Spot\';
    jpeg_files = dir(fullfile(folder,'*.jpg'));
    img_info = cellfun(@(x) {imfinfo(x)}, fullfile({jpeg_files.folder}, {jpeg_files.name}));
    img_dim = cellfun(@(x) {[x.Width x.Height]}, img_info)';
    img_dim = cell2mat(img_dim);
    idx = all(img_dim == [1280 1024], 2);
    jpeg_files(~idx) = [];
    nfiles2 = length(jpeg_files);
    for k = 1:nfiles2
    currentimage{k} = imread(fullfile(folder,jpeg_files(k).name));
    figure; imshow(currentimage{k}); % creates a new window for each image
    end