フィルターのクリア

How to create a isosurface with 3D binary array?

6 ビュー (過去 30 日間)
Camilo Costa
Camilo Costa 2016 年 4 月 5 日
編集済み: darova 2021 年 3 月 22 日
Dears friends,
How do I create a isosurface using a 3D matrix? I spent a whole week and it still did not get . ehehehehhe My code is:
% Start here clearvars close all clc
A(:,:,1) = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1];
A(:,:,2) = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0];
A(:,:,3) = [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0];
A(:,:,4) = [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0];
A(:,:,5) = [0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
[m,n,p] = size(A); [X,Y,Z] = meshgrid(1:n,1:m,1:p); p = patch(isosurface(X,Y,Z,A,0.999)); isonormals(X,Y,Z,A,p) % end
I was hoping to see a straight up plan. Best Regards!!!

回答 (2 件)

Sabrina Smith
Sabrina Smith 2018 年 9 月 11 日
hi! did you ever solve this problem? I have the same thing!

Francesca Lorenzutti
Francesca Lorenzutti 2021 年 3 月 19 日
I'm going to answer just in case someone else needs it.
In my case I solved this problem by choosing an isovalue=0.5 instead of 1 (or something very close to 1).
  2 件のコメント
darova
darova 2021 年 3 月 21 日
I'd love to see the solution. Please post it
Francesca Lorenzutti
Francesca Lorenzutti 2021 年 3 月 22 日
編集済み: darova 2021 年 3 月 22 日
There you go, tiff_stack is my mask:
[nX,nY,nZ] = size(tiff_stack);
[X,Y,Z] = meshgrid(1:nX,1:nY,1:nZ);
[f v] = isosurface(X,Y,Z,tiff_stack,0.5);
patch('Faces',f,'Vertices',v)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeScalar Volume Data についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by