【入門】Hysteresis Threshold【数値計算】

【入門】Hysteresis Threshold【数値計算】 数値計算
【入門】Hysteresis Threshold【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、
MATLAB,Python,Scilab,Julia比較 第3章 その50【Hysteresis Threshold①】
MATLAB,Python,Scilab,Julia比較 第3章 その51【Hysteresis Threshold②】
MATLAB,Python,Scilab,Julia比較 第3章 その52【Hysteresis Threshold③】

非極大値抑制を用いて、エッジをいい感じに1本の線にしたが、
全体的に暗い。
この場合、2値化をして明暗をはっきりさえるのが常套手段。
これを実現するためのHysteresis Thresholdについての解説する。

いっそのこと2値化してしまいたい。

途中、インデックスサーチの話が入ったが、
画像処理としては非極大値抑制までをやった。
よって、かなり画像処理っぽい感じになってきたと思う。

しかし、非極大値抑制後の画像って妙に暗い
もっと線の微分がはっきりした白とかになると良いかもしれない。
こういった、白と黒をはっきりさせることを2値化と言う。

まず、非極大値抑制を掛けた後の画像を見せよう。

犬と自転車(某処理実施)

そして、2値化したもの。

犬と自転車(2値化)

非極大値抑制を掛けた後の画像は、線は出てるのだが、
この線は、元画像の輝度に依存している。
これに対して、線として残すべき部分を強制的に白(256階調だと255)、それ以外を黒(256階調だと0)にした。

2値化の手法

2値化の手法として、最もシンプルなのは、
一定の閾値を超えた輝度を強制的に白にするってパターン。
しかしこれだと、無関係なものまで白になったり、必要なものまで黒になったりしやすい。

これに対して、Hysteresis Thresholdという手法を使うと、
「輝度が弱くても、強調したい線につながっていれば、それも白」
みたいなことが可能になる。

Hysteresis Thresholdの雰囲気

ところで、センサー情報で「ヒス付きで判定」というもの知っているだろうか?
High、Lowを確定させるのに、LowからHigh、HighからLowに移行する際の閾値を変えるような処理のことである。
考え方としては、Hysteresis Thresholdはそれと一緒になる。
※ 「ヒス付き」のヒスってHysteresisの略

Hysteresis Thresholdを図解

では、今回のHysteresis Thresholdを図解する。
実線が残るデータで、破線は消えるデータとなる。

Hysteresis Thresholdを図解、High、Low

雰囲気的にはセンサー情報に対するヒス付き判定と同じ見えると思う。
しかし、センサー情報は、横軸が時間で、判定も一個前との比較程度で済むのだが、
画像の場合は、平面であり、しかも判定も1方向にならない
今回の図も、左から右方向の判定以外に、右から左方向の判定が入っている。
よって、平面上での信号の繋がりを判定するから、センサー情報のヒス付きと全く同じというわけにはいかない。
やや判定方法が複雑になると思った方が良いだろう。

判定の方法としては、以下になる。

  • High以上は白
  • Low未満は黒
  • High-Lowの間の場合は周辺を探査し、エッジが居れば白、いなければ黒

ちなみにここで言っているエッジは、強制的に白判定にしたものになる。
High以上で白になったものもあれば、探査の結果として白になったものもあるが、
両方ともエッジとして解釈する。
そうすると、High以上の線と繋がっている線が残るようになって、
その結果として欲しい線だけが残る傾向が強くなる。

次のページへ

コメント

タイトルとURLをコピーしました