| Japanese | English |

第26回LSIデザインコンテスト・イン沖縄 設計仕様書 - 4
4. 局所的な最大値を求める処理
以下に局所的な最大値を求める処理についてまとめたpdfとMATLABのサンプルコードを添付しておく.
pdf file:RegionalMaxima.pdfMATLAB file:imregion_max_test.m
局所的な最大値を求めるフローチャートを図2に示す.

Fig 2 : 局所的な最大値を求めるフローチャート
処理の流れ(1/6):入力画像を格納する配列 input と true(1) で初期化された配列 output, 一時的に利用する配列 output_cp を用意する

処理の流れ(2/6):output を output_cp にコピーする

処理の流れ(3/6):9ピクセル(3x3)ごとにデータを取り出せるような,配列の添え字のオフセットの計算を行う.(赤枠部分)

処理の流れ(4/6):入力画像の m 行 n 列成分(m = [2,3, …5], n = [2,3, …5])に着目し, 8近傍と順に比較して, outputのm 行 n 列成分がtrueの場合に, 最大になる可能性があるか調べる. 調べた結果, 中央のピクセルが最大値になる可能性がない場合にoutputのm行n列成分の値をtrueからfalseに更新.

以下のいずれかの条件を満たした場合, 最大値になる可能性がなくなる
条件(1)
(任意の8近傍にあるピクセルAの値) > (中央のピクセルの値)が真

条件(2)
(任意の8近傍になるピクセルAの値) = (中央のピクセルの値) が真であり, かつピクセルAが最大値になる可能性がない.
ピクセルAが最大値になる可能性がないとは,ピクセルAにはfalse (0)が与えられていることである.

処理の流れ(5/6):同様に以下の成分に対しても8近傍と順に比較して, 着目しているピクセルの値がtrueの場合に, 最大になる可能性があるか調べる.
入力画像の m 行 n 列成分(m=1, n=[1, 2, …, 6])
入力画像の m 行 n 列成分(m=6, n=[1, 2, …, 6])
入力画像の m 行 n 列成分(m=[2, …, 5], n=1)
入力画像の m 行 n 列成分(m=[2, …, 5], n=6)
処理の流れ(6/6):
output[36]とoutput_cp[36]を比較する
比較した結果, outputとoutput_cpが等しければ処理を終了.異なっていれば(2/6)の処理へ戻る.