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.
ramakrishna bathini
ramakrishna bathini 2011 年 4 月 13 日
thanks for that....

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by