バックナンバーはこちら。
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文の嵐になりそうだが・・・。
バックナンバーはこちら。
コメント