ISOSURFACE: identifying the connected faces
显示 更早的评论
Dear All,
I have extracted the isosurfaces of variable "A" in a 3D volume data. For a specific value of "A", say A=1, I get three connected series of faces which are separated from each other. In other words, there are three different and isolated regions in the domain where A=1.
I am trying to identify these three regions and save them into three different variables. I would be grateful if someone could give me a hint on how I can achieve this goal.
Thanks,
Ahmad
2 个评论
Sean de Wolski
2012-10-19
What do you plan to do with these variables after?
回答(2 个)
Matt J
2012-10-19
0 个投票
Use BWCONNCOMP or REGIONPROPS
10 个评论
AP
2012-10-19
Not sure why you think they won't handle n-dimensional data (unless possibly you have a really old version of MATLAB). Here's a simple example on a 3D volume
>> v=false(3,3,3); v(1)=1; v(end)=1
v(:,:,1) =
1 0 0
0 0 0
0 0 0
v(:,:,2) =
0 0 0
0 0 0
0 0 0
v(:,:,3) =
0 0 0
0 0 0
0 0 1
>> S=regionprops(v,'PixelList'); S.PixelList
ans =
1 1 1
ans =
3 3 3
The output should not be a 1250x3 numeric array. It should be a structure array. Make sure your input to regionprops is a logical array, e.g., as in
S=regionprops( (A==1), 'PixelList');
Each S(i) will correspond to a different connected region where A=1.
AP
2012-10-19
But you will inevitably have a logical array. You said you were looking for regions for example where A equals 1. If so, you will have to compute the logical array A==1
More generally, you will always have to apply some logical test that identifies the regions you're looking for.
Matt J
2012-10-22
Well how do you find the isosurface? If it isn't A==1, I assume it's something like
A<=1.5 & A>=0.5
or some other logical test.
AP
2012-10-22
naomy_yf
2022-10-31
regionprops is the precondition for using BWCONNCOMP
Sachin Ganjare
2012-10-19
0 个投票
类别
在 帮助中心 和 File Exchange 中查找有关 Scalar Volume Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!