Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[2.1] 3D Imaging, Analysis and Applications-Springer-Verlag London (2012).pdf
Скачиваний:
12
Добавлен:
11.12.2021
Размер:
12.61 Mб
Скачать

456

P.G. Batchelor et al.

Fig. 11.6 Left: A grid of voxel intensities and Right: the contour corresponding to a threshold of 9.5

11.3.1 Surface Extraction

In order to extract a surface from a volume image, let’s first assume that we know the threshold corresponding to the object to be described. This may seem a strong assumption but, in the case of CT, if we want the bone surface, we already know that bone corresponds to a specific density for most people. If we want to extract a surface corresponding to a given threshold, the algorithm to use is marching cubes [47].

Consider the 2D case. If we draw a grid of points centered on our pixels, let’s assume we have the values shown in Fig. 11.6 and we want to extract a contour at a threshold of 9.5. It is clear that we will have a point on our contour along any of the lines between voxel centers where one voxel is above the threshold and the other is below. This point should be linearly interpolated to find its position along this line. However, there still remains the task of deciding how these points connect. In the example, shown in Fig. 11.6, this is clear and trivial to decide. However, in other cases, it is not so clear. Figure 11.7 shows such a case, where two opposite corners are above the threshold and the other two are not. There are two ways to connect the lines. As is always the case, making a different choice with such ambiguities leads to changes in topology—there will either be one or two objects in the case shown in Fig. 11.7.

When moving into 3D, the situation becomes more complicated. The different possible connections between points can be placed in a ‘case’ table depending on which points are above and below the threshold in a group of 8 neighboring voxels

Fig. 11.7 Example of ambiguity in the 2D marching squares algorithm. A vertex must be placed along each of the four edges, since the one of the corner values is above and one below the threshold. These can be joined in one of two ways, making either one or two regions