1366
IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS, VOL.
CAS-34,
NO. 11, NOVEMBER
1987
24 31 28
9
11 23
21 24 24 21 23 14
23 25 14 23 8
22 24 6 15 16
23 25 5
(4
24 6 15 16 7
(4
Subset1
Subset 1
5 '2 8 3
6
13 11 7
4 15 16 , 8
24 31 28 23 23
Subset2
31 28 23 23 23
Subset 2
(b)
(b)
Fig. 2. (a) Pixels in a section of the image of Exam le 1 with the
window corresponding to the pixel f(3,2). (b) The win B ow of (a) after
Fig. 3. (a) The window corresponding to the pixel f(3,3) of Example 1.
partitioning.
(b) The partitioned window indicating the position of the border at
various stages.
from one subset to the other is usually found to be less
than
(R
.S + 1)/2 by first pushing all the elements that are
less than the median of the past first window into Subset 1.
Example I:
Consider a section of an image shown in Fig. 2(a).
Assuming a window size of 5
X
5, the elements in the
window corresponding to the pixel
f(3,2)
is shown en-
closed in a box. The elements in each column of the
window are individually sorted in ascending order and
then the window is partitioned into two subsets, as shown
in Fig. 2(b). Subset 1 has 13 smallest elements of the
window and the 13th largest element of this set (element
22 for our example) is the median corresponding to the
pixel f(3,2). The median corresponding to the pixel
f (3,3)
of Fig. 2(a) with its window shown in Fig. 3(a), is found
using the following four steps.
1) Discard the five elements (21, 22, 23, 23, and 24) of
the leftmost column of the window corresponding to f(3,2)
(Fig. 2(b)). Due to this operation, the number of elements
in Subset 1 reduces to 11 elements (i.e., elements 21 and 22
are removed) and that in Subset 2 decreases to 9 elements
(i.e., elements 23, 23, and 24 are removed).
2) The ordered rightmost column of the window cor-
responding to f(3,3) is obtained from the ordered right-
most column corresponding to the pixel
f(2,3)
(i.e., the
elements 7, 7, 8, 14, and 23) by deleting the pixel 7 and
inserting the pixel 3 at an appropriate position. Thus the
elements of the rightmost column corresponding to f(3,3)
are 3, 7, 8, 14, and 23. This process results in the window
shown in Fig. 3(b).
3) The Subsets 1 and 2 of step 1) are updated by adding
the elements of the rightmost column obtained in step 2.
24 24 21 23 14
25 14 23 8 8
The elements whose values are less than or equal to the
past median (22) corresponding to the pixel f(3,2) is
pushed into Subset 1 while the remaining elements go into
Subset 2. After this operation, Subset 1 has 15 elements
and Subset 2 has 10 elements as shown by the thin-line
partition of Fig. 3(b).
4) Since the number of elements in Subset 1 is 15, the
two largest elements of Subset 1 along the border is
pushed into Subset 2, thus moving the border between the
two subsets upward. The first time, element 21, the largest
element along the border in Subset 1, is pushed into Subset
2 with the position of the border indicated by the dotted
line of Fig. 3(b). Next, the element 17, the largest element
along the new border is pushed into Subset 2 resulting in
the final partitioning shown by the solid thick line of Fig.
3(b). At this point, Subset 1 has 13 elements which are less
than or equal to the smallest number in Subset 2. The
largest element (16) in Subset 1 which is the largest ele-
ment along the final border is the median corresponding to
the pixel f(3,3).
From the above discussion, it is clear that there are three
major steps in the implementation of the algorithm: (i)
deleting and inserting of an element in forming a new
column vector, (ii) finding the position of partitioning of
the new column vector, and (iii) moving the elements from
one subset to the other. These operations are repeated for
each window. A direct implementation of these operations
results in a large execution time. The algorithm coded in C
language is presented in the Appendix. As seen from the
Appendix and from the explanation in the next section, a
careful implementation of the algorithm is essential to
achieve a fast execution time.