123456789101112131415161718192021222324252627282930313233343536373839404142 |
- function DVH = dvh(dose,mask,d_bins)
- if prod(size(d_bins)) > length(d_bins)
- error('Third input argument must be a vector.');
- end
- if ~isempty(find(mask~=0 & mask~=1))
- error('Mask must consist of zeros and ones only.');
- end
- if size(dose,1) ~= size(mask,1) | size(dose,2) ~= size(mask,2) ...
- | size(dose,3) ~= size(mask,3)
- error('The dose matrix and the mask must be the same size.');
- end
- Nbins = length(d_bins);
- Nvoxels = sum(mask(:));
- d_hist = zeros(1,length(d_bins));
- DVH = zeros(size(d_hist));
- ind = find(mask == 1);
- if ~isempty(ind)
- dose_vector = dose(ind);
- d_hist = histc(dose(ind),d_bins);
- d_hist = 100*d_hist/length(ind);
- DVH = flipud(cumsum(flipud(d_hist)));
- end
|