| Japanese | English |
Design Specification
1. Purpose2. Design enviroment
3. About regional maxima
4. Process of regional maxima
5. Challenge
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.pdfMATLAB file:imregion_max_test.m
A flowchart for process of regional maxima is shown in Figure 2.
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.
Process(2/6):Copy output to output_cp
Process(3/6):Calculate the offset of the array subscripts such that data is retrieved every 9 pixels (3x3). (red box part)
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.
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
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).
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).