Is there a command like surface detection similar to edge detection

조회 수: 3 (최근 30일)
ramakrishna bathini
ramakrishna bathini 2011년 4월 13일
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..

답변 (1개)

Sean de Wolski
Sean de Wolski 2011년 4월 13일
  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
Sean de Wolski
Sean de Wolski 2011년 4월 13일
I'll break it into pseudocode steps.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by