digital topology cis 601 fall 2004 longin jan latecki
DESCRIPTION
– You can add the four diagonal neighbors to give the 8- neighbor set. Diagonal neighbors == ND(p). – 8-neighbors: include diagonal pixels == N 8 (p).TRANSCRIPT
Digital Topology
CIS 601 Fall 2004Longin Jan Latecki
Relationship between pixels
Neighbors of a pixel
– 4-neighbors (N,S,W,E pixels) == N4(p).
A pixel p at coordinates (x,y) has
four horizontal and vertical neighbors:
• (x+1,y), (x-1, y), (x,y+1), (x, y-1)
– You can add the four diagonal neighbors to give the 8-neighbor set. Diagonal neighbors == ND(p).
– 8-neighbors: include diagonal pixels == N8(p).
Pixel Connectivity
Connectivity is used to trace contours, to define object boundaries, and for segmentation.
In order for two pixels to be connected, they must be
“neighbors” sharing a common property—satisfy some
similarity criterion.
In a binary image with pixel values “0” and “1”,
two neighboring pixels are said to be connected if they have the same value.
Let V: Set of binary or gray level values used to define
connectivity; e.g., V={1}.
Connectivity
4-adjacency: Two pixels p and q with values
in V are 4-adjacent if q is in the set N4(p).
8-adjacency: q is in the set N8(p).
A 4 (8)-path from p to q is a sequence of points
p=p0, p1, …, pn=q such that each pn+1 is 4 (8)-adjacent to pn
Connected components
Let S represent a subset of pixels in an image.
Set S is connected if for each pair of points p and q in S, there is a path from p to q contained entirely S.
A connected component is a maximal set of pixels in S that is connected.
There can be more than one such set within a given S.
We assume that points r and t have been visited and labeled.
Now we visit point p: p=0: no action; p=1: check r and t.
– both r and t = 0; assign new label to p;
– only one of r and t is a 1. assign its label to p;
– both r and t are 1:
• same label => assign it to p;
• different label=> assign one of them to p and
establish equivalence between labels (they are the same.)
Second pass over the image to merge equivalent labels.
rpt
4-connected component labeling for points
Homework 9
Develop a similar algorithm for 8-connectivity.
Matlab example: BW = logical([1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0]);L = bwlabel(BW,4); [r,c] = find(L == 2);
Problems with 4- and 8-connectivity
Neither method is satisfactory.
– Why? A simple closed curve divides a plane into
two simply connected regions.
– However, neither 4-connectivity nor 8-connectivity
can achieve this for discrete labeled components.
– Give some examples.
Border following
Let our object b be an 8-connected set of 1’s that is not a single isolated point.
A pixel P is a border pixel of b if P is 4-adjacent to at least one 0.
Let the 8 neighbors of P be ordered counterclockwise as follows, which implies that the outer border will be followed counterclockwise.
N4 N3 N2
N5 P N1N6 N7 N8
Border following algorithm:
Let (P_i,Q_i) be such that P_i is in b (P_i is 1), Q_i is 0,Q_i = N_1, and P_i and Q_i are 4-adjacent.
Then P_i+1 = N_k, where N_k is the first of the 8 neighbors of P_i that is 1(it exists since b is not a single isolated point)and Q_i = N_k-1.
The algorithm stops when we come back to the initial point pair (P_1, Q_1).
This stop condition is necessary, since we can pass through a point twice (give an example).
In Matlab use function
B = boundaries(BW);
Q3
Q4 1 P3 1 P2 Q2
1 P4 1 1 P1 Q1
Q5 1 P5 1 P6 1 P7
Q6 Q7
Example of the border following algorithm: