How to convert tif stack to dcm series?

19 views (last 30 days)
Alena Schwartz
Alena Schwartz on 9 Aug 2020
Commented: Braian Adair on 20 Feb 2024
I have a tif file that contains 1813 pages (images). I want to convert these to DICOM files within a single series. Currently, the code I am using writes over the .dcm file during each loop. How can I fix this?
fname = 'Sample19.tif';
info = imfinfo(fname);
imageStack = [];
numberOfImages = length(info);
for k = 1:numberOfImages
currentImage = imread(fname, k, 'Info', info);
dicomwrite(currentImage,'gear.dcm')
imageStack(:,:,k) = currentImage;
end

Answers (1)

Walter Roberson
Walter Roberson on 10 Aug 2020
fname = 'Sample19.tif';
info = imfinfo(fname);
imageStack = [];
numberOfImages = length(info);
for k = 1:numberOfImages
currentImage = imread(fname, k, 'Info', info);
imageStack(:,:,k) = currentImage;
end
dicomwrite(imageStack,'gear.dcm')
However, in practice you almost always need a bunch of dicom metadata. The easiest way to get that is to use dicominfo() on a dcm file that has the same kind of attributes that you are going to need, and pass the resulting metadata to dicomwrite after the file name.
  8 Comments
Amine Adjoud
Amine Adjoud on 16 Nov 2022
I encouter the same problem, did you get a solution?
Braian Adair
Braian Adair on 20 Feb 2024
Thank you Julianna Mather you solved my four days problem!

Sign in to comment.

Categories

Find more on DICOM Format in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!