How can I label DICOM images for classification based on folder name

16 ビュー (過去 30 日間)
Cameron Harris
Cameron Harris 2018 年 3 月 10 日
編集済み: shivan artosh 2020 年 4 月 2 日
I want to carry out transfer learning using AlexNet for a set of 128x128 DICOM images. It looks like on of the most efficient methods of storing and labeling images is using imageDatastore, however I don't think this supports DICOM formats, I can create the store with no errors using:
images = imageDatastore(fullfile(pwd,'Project_Segmentations'),...
This correctly labels the DICOMs based on the name of the folder they are in, however, when I try to use this data for training I'm met with the error:
Error using (line 32)
Error using ReadFcn @readDatastoreImage function handle for file
Which makes sense given imread doesn't support DICOM images.
Ideally I want to keep the DICOM file format, is there anyway I can achieve this data labeling for DICOM images?
Many Thanks.


Image Analyst
Image Analyst 2018 年 3 月 10 日
Perhaps write a utility that reads in all the images and stores them out in PNG format.
for k = 1 : numImages
thisImage = dicomread(....
outputFileName = strrep(lower(inputFileName), '.dcm', '.png');
imwrite(thisImage, outputFileName);
  3 件のコメント
Cameron Harris
Cameron Harris 2018 年 5 月 14 日
I continued using PNGs as I also wanted to use imagedatastore's built in image augmentation.


その他の回答 (1 件)

Khalid 2019 年 1 月 19 日
I have faced a similar issue in wich I had to create another readDatastoreImage function. You might solved it this way:
Create a copy of the readDatastoreImage function within the imageDatastore function and give it a different name, for example: readDicomDatastoreImage
Then change the imread(filename) function wihin the one you copyed to dicomread(filename)
finaly, use it with the imageDatastore function this way:
imds = imageDatastore(imageDir, 'FileExtensions','.dcm','ReadFcn',@readDicomDatastoreImage);
Hope this can help
  3 件のコメント
shivan artosh
shivan artosh 2020 年 3 月 26 日
thank you so much sir it is really helpful


Community Treasure Hunt

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

Start Hunting!

Translated by