MATLAB,Python,Scilab,Julia比較 第3章 その50【Hysteresis Threshold①】

MATLAB,Python,Scilab,Julia比較 第3章 その50【Hysteresis Threshold①】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その50【Hysteresis Threshold①】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

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

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

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

太郎くん
太郎くん

途中、インデックスサーチの話が入ったけど、
画像処理としては非極大値抑制をやったところだったね。

フクさん
フクさん

そうそう。
かなり画像処理っぽい感じになってきたと思う。

太郎くん
太郎くん

でも、非極大値抑制後の画像って妙に暗いんだよなー。
もっと線の微分がはっきりした白とかになると良いとは思うけど。

フクさん
フクさん

白と黒をはっきりさせることを2値化と言ったりするね。

太郎くん
太郎くん

2値化?

フクさん
フクさん

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

犬と自転車(某処理実施)
フクさん
フクさん

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

犬と自転車(2値化)
太郎くん
太郎くん

おー!
なんかいい感じになったぞ!

太郎くん
太郎くん

で、何をしたの?

フクさん
フクさん

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

太郎くん
太郎くん

それでくっきりはっきりしたのか。

2値化の手法

太郎くん
太郎くん

で、その2値化はどうやるの?

フクさん
フクさん

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

太郎くん
太郎くん

まぁ、なんとなくわかる。

フクさん
フクさん

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

太郎くん
太郎くん

ちょっと何言ってるかわからん・・・。

フクさん
フクさん

ならば、Hysteresis Thresholdを図解できるよう次回までに準備しておこう。

太郎くん
太郎くん

よろしくー。

まとめ

フクさん
フクさん

まとめだよ。

  • 非極大値抑制を掛けた後の画像はなんか暗い。
  • よって2値化して、線をはっきりくっきりせされば良い。
  • 閾値で2値化するのが一番シンプルだが、必要な線が消えたり、不要な線が残ったりしやすい
  • これに対して、Hysteresis Thresholdを使うと言い感じになる。

バックナンバーはこちら。

コメント

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