サブロウ丸

主にプログラミングと数学

最小カットを用いたモノクロ画像のノイズ除去 その1

「劣モジュラ最適化と機械学習」(講談社)の4.2節 「マルコフ確率場における推論とグラフカット」で取り上げられている 劣モジュラを満たすエネルギー関数最小化による画像ノイズ除去手法を実際にプログラム実装してみました。

行いたいことに特化した簡単な説明とプログラムを載せていますが、このことに関する詳しい説明を知りたい方は本を買ってくださいね。



さて、黒と白のピクセルのみから構成される下図のようなモノクロ画像を考えます。

f:id:inarizuuuushi:20171218101153p:plain:w300

この画像にノイズを付加します。
f:id:inarizuuuushi:20171218103801p:plain:w300

ノイズが付加された画像をなるべく元の画像に近くなるように復元するというのが目標です。


前提として

  1. 元画像において, 黒のピクセルと白のピクセルはかたまって配置されている

というものを置きます。


以下、はてなブログMarkdownの使い勝手が悪いため、他のMarkdownエディタで書いたものをスクショしてブログに載せるという頭の悪いことをしています。そのため、見にくい箇所があると思いますがご了承ください。


f:id:inarizuuuushi:20171219193418p:plain


f:id:inarizuuuushi:20171219193456p:plain


f:id:inarizuuuushi:20171219193534p:plain
f:id:inarizuuuushi:20171220095412p:plain:w600



f:id:inarizuuuushi:20171219194549p:plain


f:id:inarizuuuushi:20171219193603p:plain
f:id:inarizuuuushi:20171220095603p:plain:w600



f:id:inarizuuuushi:20171219193626p:plain


f:id:inarizuuuushi:20171219193652p:plain


f:id:inarizuuuushi:20171219193712p:plain


f:id:inarizuuuushi:20171219193728p:plain
f:id:inarizuuuushi:20171220095705p:plain:w600



f:id:inarizuuuushi:20171219193745p:plain
f:id:inarizuuuushi:20171220095727p:plain:w600



元画像
f:id:inarizuuuushi:20171218101153p:plain:w300

ノイズ付加画像
ノイズは各マスについて10%の確率で付加しています。
f:id:inarizuuuushi:20171218103801p:plain:w300

復元画像
f:id:inarizuuuushi:20171219194936p:plain:w300


白マスの右側にコブができていますが、その他のノイズ除去は上手くいっていますね!!



別の例では
ノイズ付加画像
f:id:inarizuuuushi:20171219195021p:plain:w300

復元画像
f:id:inarizuuuushi:20171219195038p:plain:w300


次回に続きます。



用いたプログラム

入力ファイル