MATLAB,Python,Scilab,Julia比較 第3章 その25【微分フィルタ①】

MATLAB,Python,Scilab,Julia比較 第3章 その25【微分フィルタ①】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その25【微分フィルタ①】

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

はじめに

畳み込み演算の微分フィルタの話。
まずはエッジ検出の雰囲気について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

画像処理と言えば?

太郎くん
太郎くん

前回までで、ガウシアンフィルタってのが終わったところだね。

フクさん
フクさん

そうそう。
最も基本的な画像処理という位置づけになるな。

太郎くん
太郎くん

で、その画像処理なんだけど、
ガウシアンフィルタがノイズ除去してくれそうなのはわかったけど、
あんまり画像処理って感じがしないんだよなー。

フクさん
フクさん

ほう?
じゃー、太郎くんが思う画像処理ってどうなの?

太郎くん
太郎くん

太郎くん:
例えば、写真に写ってるモノの輪郭を抽出するとか。

フクさん
フクさん

なるほど。
いわゆるエッジ検出だな。

太郎くん
太郎くん

どうやるかは知らないけど、
雰囲気的に大変そうだよねー。
大変そうだったらやらなくても良いかなー。

フクさん
フクさん

それほど大変ってことはないな。

太郎くん
太郎くん

そうなの?

エッジ検出の考え方

フクさん
フクさん

まずはエッジ検出を考えるために以下の画像を用意した。

犬と自転車輝度
太郎くん
太郎くん

これは・・・。
恒例の犬と自転車だけど、左と下にあるグラフはなんだ?

フクさん
フクさん

グラフは輝度だな。
画像自体はグレースケールにしているんで、
ピクセルの値が大きいほど、白に近付き、輝度が高いと言える。
そして、その輝度に山と谷があることがグラフから読み取れる。

太郎くん
太郎くん

確かに結構あるね。

フクさん
フクさん

そして、輝度の立ち上がり、立下りが激しい部分を実際の画像と見比べると、
何かしらの物体の境界線になっていることが多い。

太郎くん
太郎くん

うん。
それもなんとなくわかる。

フクさん
フクさん

つまり、この山と谷を検知すれば、結果的にエッジ検知になる。
って寸法。

太郎くん
太郎くん

言ってることは分かるが、具体的にどうするんだ?
1ピクセルずつ評価していけば、できなくもない気はするけど、
if文まみれのプログラムを作ることになりそう。

フクさん
フクさん

if文は不要だな。
まぁfor文は使うと思うけど。

太郎くん
太郎くん

え?
評価するのにif文がいらない???

フクさん
フクさん

まぁ、そこらへんは次回解説しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 画像処理と言えば、エッジ検出が割と有名。
  • エッジをデータでみるとどういうことなのを確認するために輝度のグラフを出してみた。
    • 山と谷が検知できればエッジ検知になりそう。
    • 普通に考えると、ピクセル単位で評価するif文の嵐になりそうだが・・・。

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

コメント

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