1
$\begingroup$

I have a set of matrices (a 3D matrix, that represents a quantized body), for instance: (the size 5x5 here is just an example, the real size is a lot higher)

$ M_1 = \left[ {\begin{array}{cc} 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 \\ 0 & 1 & 1 & 1 & 0 \\ 0 & 0 & 1 & 1 & 0 \\ 0 & 0 & 1 & 1 & 0 \\ \end{array} } \right] M_2 = \left[ {\begin{array}{cc} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 & 0 \\ 0 & 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ \end{array} } \right] M_3 = \left[ {\begin{array}{cc} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ \end{array} } \right] $

. . .

$ M_n = \left[ {\begin{array}{cc} 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 0 & 1 & 1 \\ \end{array} } \right] $

Each matrix represents a black white image, and each matrix from $M_1$ to $M_2$, $M_2$ to $M_3$ and so on are continuous until $M_n$. All matrices will always have the same number of rows and columns. The 1 represents white pixel while 0 represents black pixel. We can understand how the shape looks like in 3D by drawing rendering it on the screen, but for a computer program, this has to be treated differently. I am looking for a mathematical way to make a program understand a 3D shape in this case. Note that these matrices will always only hold one continuous 3D shape, but the shape can be of any shape.

Several things that come to my mind, for instance:

Area: I can count how many white pixels are there for this. It's a dirty solution, but for a completely random 3D shape, is there another method?

Surface: I can use edge detection algorithm and count only the white pixels from there.

These are a few basic things, but for a more complex identification, such as "are there some extending parts from the bigger part?", etc. There are infinite ways to address a random 3D shape, but in mathematics, is there anything I can do if I want to identify how random 3D shapes look like analytically?

  • 0
    Your 3-D shapes are what are referred to as Voxel representations and fall into the domain of image processing. If you Google Voxel you will get going in the right direction.2011-07-25

1 Answers 1

3

The answer highly depends on what you need. For instance, if it were spectroscopic image of some porous medium, you could count the ratio of 0 and 1 points to get an idea about porosity; from mechanical point of view, computing centeroid or n-order moments could be useful (since it is only one shape, as you said); this could give a good idea about elongation and other global characteristics.

For getting surface, use marching cubes or similar method (you get triangulated surface at the end), then simplify the surface by either discarding small features (trinagulation decimation) or by simplifying its description with some surface interpolation.