| Japanese | English |
![LSI design contest 2023](Topimage_HP2023.png)
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.
![flowchart](images/flowchart.png)
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](images/process1.png)
Process(2/6):Copy output to output_cp
![process2](images/process2.png)
Process(3/6):Calculate the offset of the array subscripts such that data is retrieved every 9 pixels (3x3). (red box part)
![process3](images/process3.png)
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](images/process4.png)
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](images/process4-1.png)
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](images/process4-2.png)
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).