Is there a command like surface detection similar to edge detection

3 visualizaciones (últimos 30 días)
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..

Respuestas (1)

Sean de Wolski
Sean de Wolski el 13 de Abr. de 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 comentarios
Sean de Wolski
Sean de Wolski el 13 de Abr. de 2011
I'll break it into pseudocode steps.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by