出力するときは以下のように記録します。0~255の8bitで画像の白黒を表現するよ、っていう意味でuint8が入っています。
すべてのコードをまとめると以下のようになります。
実行すると、以下のような画像が出力されます。
この画像の画素値を並べ直し、縦ベクトルに変換して、フィルター(H(n))をかけてみましょう。まず画像(image)を縦ベクトルsへ変換します。
ここからガウシアンフィルタの行列(H)を設計します。上の行列は何らかの規則を有している(ハンケル行列のよう)のですが、上手に設計する方法が見当たらないので、地道にセットしました。
これで、フィルターHが設計できました!やっと[math]d=Hs[/math]が計算できます。
以下のコマンドによって、これらを計算し、それの画像を表示します。
以下のコマンドによって、これらを計算し、それの画像を表示します。
コントラストが平滑化されているのが分かります。
画像の外側の影響によりなんとなく想像したのと違うかもしれません。
さて、長くなりましたが、右の画像が平滑化によって得られた得られたとします。ここから左の画像を復元できるかどうかというのが再構成の話です。今回の例は簡単で、Hという行列がかけられただけなので、[math]H^{-1}[/math]を両辺にかければ元の画像が得られるはずです。
numpyを用いると逆行列はすぐ計算することができます。
画像の外側の影響によりなんとなく想像したのと違うかもしれません。
さて、長くなりましたが、右の画像が平滑化によって得られた得られたとします。ここから左の画像を復元できるかどうかというのが再構成の話です。今回の例は簡単で、Hという行列がかけられただけなので、[math]H^{-1}[/math]を両辺にかければ元の画像が得られるはずです。
numpyを用いると逆行列はすぐ計算することができます。