How to plot surf for 3D images.

15 次查看(过去 30 天)
Dear all, I have 3D image as attached. How to plot it using surf fucntion? so that i can get the graph as below.
>> h = dicomread('h.dcm');
>> h = squeeze(h);
>> surf(h);
Error using matlab.graphics.chart.primitive.Surface
Value must be a scalar, vector or array of numeric type.
Error in surf (line 145)
hh = matlab.graphics.chart.primitive.Surface(allargs{:});

采纳的回答

KSSV
KSSV 2022-6-27
dicom will be a 3D matrix..you cannot use surf straight away.
h = dicomread('h.dcm');
[m,n,p] = size(h) ;
figure
hold on
for i = 1:p
surf(h(:,:,i))
end
Have a look on slice

更多回答(1 个)

Voss
Voss 2022-6-27
unzip('h.zip')
h = dicomread('./h/h.dcm');
whos h
Name Size Bytes Class Attributes h 130x130x1x74 2501200 uint16
h = squeeze(h);
whos h
Name Size Bytes Class Attributes h 130x130x74 2501200 uint16
figure();
surf(h(:,:,1))
title('First Slice')
colormap(jet());
colorbar();
figure();
surf(h(:,:,end))
title('Last Slice')
colormap(jet());
colorbar();
figure();
surf(sum(h,3));
title('Sum of All Slices')
colormap(jet());
colorbar();

类别

Help CenterFile Exchange 中查找有关 Modify Image Colors 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by