Biomedical Engineering Reference
In-Depth Information
Algorithm 2 Four-Color Level Set Segmentation
Input : A time-varying sequence of N images and constants in (3.18)
Output : A time-varying sequence of N , ''four-colored'' masks
1:
Initialize the segmentation process on the starting image, using level lines [66]. Isolate cells
that may be touching or very close to each other to produce the segmentation mask
(used in Step 4).
2:
for f
=
1
...
N do
3:
Project the segmentation mask (i.e., converged level sets) from the previous frame as an
initial estimate, in order to speed up convergence (see [66, 94]).
4:
Extract connected components from the binary segmentation mask.
5:
Compute an adjacency graph for these connected components.
6:
Apply a suitable graph-vertex coloring algorithm (see [95]) to partition the cells into
at most four independent sets, and produce a colored segmentation mask so that
neighboring cells belong to different colors
7:
Associate one level set function with each mask color, and calculate the signed distance
functions for each of the four initial zero level sets (i.e., f i at evolution time t =0).
8:
for i
=
1
...
K iterations do
9:
Update c in and c out .
10:
Evolve the level set within the narrow band of a cell using Euler-Lagrange equations.
11:
Enforce an explicit coupling rule that the narrow band of a cell, f i cannot overlap with
the level set of any of its neighbors.
12:
end for
13:
Generate a binary mask from the four-color segmentation and apply morphological
filtering to remove spurious fragments.
14:
Apply a spatially-adaptive level line-based coarse segmentation to the background
(i.e., complement of the dilated colored segmentation mask), in order to detect objects
not present in the previous frame (i.e., new objects entering the current frame).
15:
end for
the Chan and Vese formulation of the regularized Heaviside function shown in
(3.35) where x is the cell pixel value in f t and
is a small constant (Algorithm 1).
p tan 1 x
1
2 +
1
H
(
x
)=
(3.35)
Table 3.2 Computing the Regularized Heaviside Function
void computeHeaviside(float2 coords : WPOS,
uniform samplerRECT phi,
uniform float epsilon,
out float4 color : COLOR)
{ color = float4(0.0, 0.0, 0.0, 0.0);
const float invpi = 0.318309886;
float phiVal = texRECT(phi, coords).r;
float hSide = 0.5 * (1 + (2 * invpi) * atan(phiVal / epsilon));
color.r = hSide;
color.g = 1 - hSide;
}
Search WWH ::




Custom Search