Load DICOM image, binarize, and save a new DICOM image
3 次查看(过去 30 天)
显示 更早的评论
I load a DICOM Image and binarize it.
Then I save a new dicom image. However, the saved image is only black, and not black and white.
Here is the code:
for i = 1:length(d)
na=d(i).name;
TF = startsWith(na,'Tumour');
if TF == 1
info = dicominfo(na);
greyImage = dicomread(info);
BW=imbinarize(greyImage);
fname1 = strcat('bin_',na)
dicomwrite(BW, fname1,info);
else
if TF == 0
fprintf('File do not match')
end
end
end
4 个评论
Walter Roberson
2024-5-1
dicomwrite(BW, fname1,info);
That asks to write a dicom image using the attributes of the original image. But the attributes of the original image are potentially unsuitable for writing an image of type logical.
采纳的回答
Karl
2024-5-2
Two things that might help are:
- Convert the binarized image to type double.
- Redefine the minimum and maximum greyscale values in the DICOM info.
I give an example below, based on your code.
% Read and display example DICOM image.
dicom1 = 'CT-MONO2-16-ankle.dcm';
info1 = dicominfo(dicom1);
image1 = dicomread(info1);
imshow(image1, [min(image1(:)),max(image1(:))])
% Binarize image, and write to DICOM.
dicom2 = 'binarized.dcm';
bw = double(imbinarize(image1));
info1.SmallestImagePixelValue = min(bw(:));
info1.LargestImagePixelValue = max(bw(:));
dicomwrite(bw,dicom2,info1);
% Read and display binarized image.
info2 = dicominfo(dicom2);
image2 = dicomread(info2);
imshow(image2)
9 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!