comparing volume of two 3d matrices
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alan AF
am 14 Feb. 2012
Bearbeitet: a
am 12 Okt. 2013
I have two 3d matrices called ORIGINAL and RECONSTRUCTED, size 500x500x500.
- ORIGINAL [Solid intensity: 0 black , 1 white]
- RECONSTRUCTED [intensity: 0 black to 1 white]
each matrix contain an object that can be viewed using command : isosurface(Volum,0.5);
How can I compare the size of those two object in Matlab?
Is there a way to combine the two matrix together and draw an isosurface of the two Objects after combination?
Thanks
0 Kommentare
Akzeptierte Antwort
Sean de Wolski
am 14 Feb. 2012
If the objects are convex then you can use the second output of convhulln to give you the volume directly. If not, then you have a few options:
You can just sum the images:
v1 = sum(sum(sum(original)));
v2 = sum(sum(sum(original)));
You could use a more fancy approach such as this:
And there are other ways.
For my masters thesis that did quite a bit of CT volume analysis, I just summed - it was a good enough approximation and there were many other attributes in the image that cause more error than this (reconstruction/downsampling bits/binarizing/noise, etc).
2 Kommentare
Sean de Wolski
am 14 Feb. 2012
You could do a Venn diagramesque combo, sure.
V = uint8(Original); %original is label 1, background is zero
V(logical(recon))) = 2; % recon is label 2
V(logical(original)&logical(recon)) = 3; %both
Now isosurface based on equality, i.e:
isosurface(V==1,0) %isosurface of first object
Or if you want total isosurface
isosurface(V>0,0);
etc. Logical indexing is your friend!
Is this what you want?
Weitere Antworten (0)
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!