Filter löschen
Filter löschen

How to skip file in imageDatastore.ReadFcn?

4 Ansichten (letzte 30 Tage)
tesarj13
tesarj13 am 24 Jan. 2021
Bearbeitet: John am 18 Nov. 2022
I have folder with dicom files (.dcm). Some of them are images (with size MxNx3), some of them are videos (MxNx3xnumOfFrames). I would like to use imageDatastore to read images only.
I tried this:
imds = imageDatastore('pathToDicoms','FileExtensions',{'.dcm'},'ReadFcn',@ImageLoader);
function imgOut = ImageLoader(path)
imgOut = dicomread(path);
if(length(size(imgOut))>3)
imgOut = [];
end
end
But it return empty matrix insead of ommiting the file.
How to skip file in read fuction?
  1 Kommentar
John
John am 18 Nov. 2022
Bearbeitet: John am 18 Nov. 2022
I used this and worked well:
exts = ".dcm";
readimgFcn = @(x)int16(dicomread(x));
imds = imageDatastore(datafiles,FileExtensions=exts,ReadFcn=readimgFcn);
Hope this helps.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jeremy Hughes
Jeremy Hughes am 25 Jan. 2021
The only way to do this is to remove the files from the Files list on the ImageDatastore, or make a copy of this dataset which contains only the images, and not the videos.
If there's any way to tell what the contents are from the file name, or file metadata using dicominfo(filename), you might have an easier time splitting them out.

Weitere Antworten (0)

Kategorien

Mehr zu DICOM Format finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by