Remove empty image file in a ImageDatastore

I have a folder containing images, some of which are empty JPEG (Zero byte). How can I create a ImageDatastore and skip the null files?
I have tried using ReadFcn to create a custom read function, see below:
function data=readImages(filename)
try % Fetch dimensions of a JPEG, error returned if it is null
dim = infinfo(filename);
data = imread(filename);
catch error
disp('Null data detected') % Problem: need to define data value for this statement
end
end

2 comentarios

Zzz
Zzz el 6 de Ag. de 2021
The problem with the above approach is that it doesn't really skip the null files, since I still need to define what 'data' is.
Drishan Poovaya
Drishan Poovaya el 10 de Ag. de 2021
I understand you want to avoid including any empty jpg files. For reference purposes, could you please attach one of these empty jpg files? It would be helpful to come up with a solution

Iniciar sesión para comentar.

Respuestas (1)

Jayanti
Jayanti el 14 de Mayo de 2025

0 votos

Hi,
To ensure only valid images are used, you can first scan the image folder and filter out any files that are 0 bytes. And while creating the “ImageDatastore” only include those verified files. This way you will only have good images in your datastore.
Hope this will be helpful!

Productos

Versión

R2021a

Preguntada:

Zzz
el 6 de Ag. de 2021

Respondida:

el 14 de Mayo de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by