26th LSI Design Contests・in Okinawa  Design Specification - 4

3. Process of regional maxima

Attached below are a pdf summarizing the process of regional maxima and MATLAB sample code.

pdf file:RegionalMaxima.pdf
MATLAB file:imregion_max_test.m

A flowchart for process of regional maxima is shown in Figure 2.

flowchart

Fig 2 : A flowchart for process of regional maxima

Process(1/6):Prepare an array input to store the input image, an array output initialized with true(1), and an array output_cp for temporary use.

process1

Process(2/6):Copy output to output_cp

process2

Process(3/6):Calculate the offset of the array subscripts such that data is retrieved every 9 pixels (3x3). (red box part)

process3

Process(4/6):Focusing on the m-by-n components (m = [2,3, ...5], n = [2,3, ...5]) of the input image, we compare them with their 8 neighbors in sequence to see if they are likely to be maximized if the m-by-n component of output is true. After checking, the value of the m rows and n columns component of output is updated from true to false if the center pixel is not likely to be the maximum value.

process4


The possibility of the maximum value is eliminated if any of the following conditions are met
Condition (1)
(the value of pixel A in any 8 neighborhood) > (the value of the center pixel) is true

process4-1


Condition(2)
(the value of pixel A in any 8-neighborhood) = (the value of the center pixel) is true, and there is no possibility that pixel A has a maximum value. The fact that pixel A is not likely to be maximal means that pixel A is given false (0).

process4-2

Process(5/6):Similarly, the following components are compared with their 8 neighbors in order to check for a possible maximum if the pixel of interest has a value of true.
m-by-n components of the input image(m=1, n=[1, 2, …, 6])
m-by-n components of the input image(m=6, n=[1, 2, …, 6])
m-by-n components of the input image(m=[2, …, 5], n=1)
m-by-n components of the input image(m=[2, …, 5], n=6)

Process(6/6):
Compare output[36] with output_cp[36]
If output and output_cp are equal, the process is terminated. If they are different, return to the process (2/6).

<<Back                 Next>>