Is there a command like surface detection similar to edge detection

3 visualizzazioni (ultimi 30 giorni)
I have to get the surface detection of the pores in the rock n get the volume of the individual rocks...I was able to get that in 2d.applied the edge detection n then the region props to get the area,perimeter,centroid n diff properties..now want some volume properties in 3D...Is there a command like surface detection similar to edge detection in matlab..

Risposte (1)

Sean de Wolski
Sean de Wolski il 13 Apr 2011
  1. Edge detection on each slice along the 3rd dimension;
  2. Permute it so the third dimension is the first dimension: I2 =permute(I,[3 2 1]);
  3. Recompute the edge of each slice, store in a second volume.
  4. Fill all edges using imfill(bw,'holes') in both volumes
  5. Inverse permute the second volume so it's in the same axes as the first: M2 = ipermute(M2,[3 2 1]);
  6. Logical AND on the whole deal to keep only objects contained in both views of the image volume. This will cut out the non-convex portions of either view: M = M1&M2;
  7. Since you only want the surface; invert your binary image and compute the distance transform: D = bwdist(~M)
  8. Keep voxels on the surface: surface_voxels = D<1.5;
  3 Commenti

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by