classdef BinaryDicomVolume < BinaryVolume properties (Access = public) dicomVolume end methods function obj = BinaryDicomVolume(dicomFolderPath) [volume,spatial,~] = dicomreadVolume(dicomFolderPath); volume = squeeze(volume); resolution = getSmallestResolutionDividedBy2(spatial); volume = normaliseDicomVolume(volume,resolution); obj@BinaryVolume(size(volume)); obj.dicomVolume = volume; obj.setResolution(resolution); end end end function output = getSmallestResolutionDividedBy2(spatial) resolution(1) = min(spatial.PixelSpacings(:,1),[],'all')/2; resolution(2) = min(spatial.PixelSpacings(:,2),[],'all')/2; resolution(3) = (spatial.PatientPositions(end,3) - spatial.PatientPositions(1,3))/(2*size(spatial.PatientPositions,1)); output = resolution; end function output = normaliseDicomVolume(volume,newResolution) newSize = abs(size(volume)./newResolution); volume = imresize3(volume,newSize); output = volume; end