2020年2月11日更新
MATLAB を使って三次元のボリュームデータを可視化する方法を紹介します。
%===parameter===% th=0.5; SIGMA=10; x=0:30;y=0:30;z=0:30; [X,Y,Z]=meshgrid(x,y,z); Vol=exp(-((X-15).^2+(Y-15).^2+(Z-15).^2)/2/SIGMA/SIGMA); Vol=Vol+0.25*rand(size(Vol)); %===3D image===% Vol=smooth3(Vol); fv=isosurface(Vol,th); figure(1); hiso=patch(fv,'FaceColor',[0.3,0.3,1],'EdgeColor','none'); axis('equal'); axis([0,30,0,30,0,30]); view(45,45); lightangle(60,60); grid on;
ボリュームデータ
Vol は三次元のボリュームデータです。
三次元の球に,乱数を使って凹凸をつけています。
ボリュームデータの可視化
ボリュームデータの可視化は,%===3D image===% 以下の数行です。
smooth3 という関数でボリュームデータを平滑化
smooth3 という関数でボリュームデータを平滑化
isosurface という関数ででボリュームデータの等値面を計算。ここで,th という関数でで等値面の値を設定しています。
上記のコードの fv は頂点とフェースの構造体になっており,それを patch にて可視化します。
いわゆるポリゴンというヤツです。
上記のコードの fv は頂点とフェースの構造体になっており,それを patch にて可視化します。
いわゆるポリゴンというヤツです。
view や lightangle を使って,ボリュームデータをカッコ良く表示できるようにしています。
いっぱい頂点とフェースがある場合,黒々してしまうので,それを避けるためにライトを使います。