FC2ブログ
 

ロコリンの雑記

アニメ大好き社会人のロコリンのブログ。2015年卒(修士)の社会人。学生時代(2010年)から続けてるブログなのでエントリによっては学生ブログと社会人ブログになっています。時系列から察して。
 
 
このブログについて
ブログ内検索
カテゴリ
プロフィール

ロコリン

Author:ロコリン
2018年6月から会社員。2015年3月まで大学院生でした。
趣味:アニメ/Twitter/ゲーム/ニコ動
今(2015年2月更新):プリキュア/プリパラ/アイカツ/ごちうさ/艦これ

外部リンク
Twitter

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ポアソン方程式の数値解法を実装 - 2010年夏休み自由研究 

今日は画像のポアソン方程式を数値的に解くプログラムを実装できました。

点 (x, y) での画像の色を f(x, y)、ラプラシアンフィルタを L(x, y) とすると、これらは次の方程式を満たします。
2f(x, y) = L(x, y)
ただし、この方程式を満たす f は境界条件を定めなければ一意に定まりません。
そこで、ラプラシアンフィルタをかける前の画像の境界 Γ 上の色を fΓ(x, y) として、
f(x, y) = fΓ(x, y) ((x, y) ∈ Γ)
という境界条件を定めます。

今回は、画像の周りを 0 で囲んでいるものとしてラプラシアンフィルタをかけましたから、境界条件は
f(x, y) = 0 ((x, y) ∈ Γ)
となります。

これは f についての2階の偏微分方程式であり、特にこの形はポアソン方程式と呼ばれています。
これを f について解析的に解く (一般解を求める) ことは困難です。
しかし、数値的に近似解を求めることは意外と簡単で、最終的に四則演算からなる漸化式に帰着します。
この漸化式を十分な回数計算することで、元の画像 f を得ることができると考えられます。

で、実際にやってみました。

元画像 数値解画像 出展
neet.jpg neet.jpg TV
korinku.png korinku_out.png ゲーム

数値解の方の画像を見ても元の画像と区別がつかないでしょう。
近似解といっても精度は十分高いといえるのではないでしょうか。

しかし、問題点が2つほど見つかりました。
  1. 大きな画像では計算に時間がかかる。我慢できるレベルではない。
  2. 一部の画像では他の画像と同じ基準の回数計算しても、元の画像との違いがはっきりわかる画像となってしまう。

時間がかかることについてはアルゴリズムの抜本的な改良が必要かと思います。
といっても、私には今のアルゴリズムが最適なように見えるのですが。
オーダで言うと、画像を正方形サイズと仮定すると O(n3) くらいかと思います。

一部の画像というと、ここに載せている例ではコリンク (ポケモンの画像) を見ていただければわかるかと思います。
なぜか、画像の境界と被写体の間に暗い領域が見られます。
この原因は正直言ってわかりません。
色が頻繁に変わる画像 (自然画像) では精度が高く、べた塗りの画像 (イラストやドット絵など) では精度が低いということでしょうか。

明日からどうしよう。


追記 (2010年8月9日19時13分ごろ)

どうやら問題点2番はイラスト画か自然画かに関わらず、画像のサイズが小さいときは同様の問題が起こるようです。
そして、その原因がわかりました。
単に計算回数が足りなかっただけでした。

しかし、計算回数についてどうやって設定すればいいでしょうか。
回数 = 横幅×縦幅
でも小さい画像ではうまく行かないし、逆に
回数 = 横幅 または 縦幅
だけでも十分な精度の画像を得られる画像もありますからね。
それに、大きい画像となると、なおさら横幅×縦幅だと計算量が多すぎて遅くなり過ぎます。

計算回数を指定しないで、元のラプラシアンフィルタと今の状態のラプラシアンフィルタが一致するまでやるという方法も考えられますが、
両者を比較する際のオーバヘッドが大き過ぎるのではないでしょうか。
といっても、まだ実装していない段階からいうのも難ですが。
ということで、明日はラプラシアンフィルタが一致するまで計算を続けるように実装してみたいと思います。

2010年夏休み自由研究記事一覧

  1. ラプラシアンフィルタ完成 (2010.08.08)
  2. ポアソン方程式の数値解法を実装 (2010.08.09)
  3. ポアソン方程式の数値解法を改良 (2010.08.10)
  4. ポアソン方程式の数値解法を用いた画像合成できた (長方形領域のみ) (2010.08.11)
  5. 任意領域でのポアソン方程式の数値解法を用いた画像合成できた (2010.08.12)
スポンサーサイト
コメント















 管理者にだけ表示を許可する

トラックバック
 
http://rexpit.blog29.fc2.com/tb.php/19-0ff6734d
最新記事
最新コメント
FC2カウンタ
欲しい
最近買ったもの
Amazon 検索
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。