離散フーリエ変換 – AS3.0

“画像” に対する離散フーリエ変換について。 ”音” は扱わないので注意。 また、一度で書くには分量が多いので何回かに分けて書こうと思います。 ・離散フーリエ変換 (DFT) フーリエ変換についてはFlasherの間でも音関連でよく話題に出ているようなので理論的な説明は省きます。 画像の場合も音の周波数解析と基本は同じ。 ただ、音と違って画像は二次元なので空間周波数領域への変換を行うことになります。 (音の信号 x(t)は一次元、画像の信号 f(x,y) は二次元になる)…

誤差拡散法 – AS3.0

誤差拡散法。 前回紹介したディザ法と同じく疑似階調表現アルゴリズムのひとつです。 こちらはディザ法よりも一般的に品質が良いとされています。 誤差拡散法の基本的な考え方は、減色処理によって生じた誤差を近傍の画素に拡散させ、画像全体としての誤差を最小にしようとする手法になります。 フルカラー画像を限定されたカラーパレットで表現された画像への変換を行う場合、元の色に最も近い色をパレット内から選び出し、その色に変換していくことで減色処理を行います。この変換を行う時に、元の色がパレット内に存在しない限り誤…

ディザ法 – AS3.0

新聞は基本的に黒インクのみを用いて印刷されています。 そのため使える色は白と黒だけのはずですが、記事中の写真などではグレーの色も確認できます。 実際に写真部分をよく見てもらえるとわかると思いますが、グレーの部分では網目状の点で構成されています。 このように実際に使用している色は少なくても、その密度を変化させることによって多くの色を使っていると見せかけることができ、これを疑似階調表現といいます。 疑似階調表現を実現する方法としてディザ法と呼ばれる方法があり、組織的(Ordered)ディザとランダム…

VTR調変換 – AS3.0

ByteArrayで画像処理~みたいな記事タイトルだと何してるかわからないので止めました; 内容自体はその続きで、ByteArray内のバイナリデータを扱って画像処理をします。 今回はVTR調変換。 これは、ダビングや経年などで劣化したVTR映像のような効果を付加するものです。 Photoshopのプラグインでも提供されていますね。 前回作ったIplImageクラスを利用していきます。

処理はこれだけ。↓のような結果が得られます(…

双三次補間法 – AS3.0

前回の画像のリサイズ – AS3.0で、バイキュービック補間の名前を出しておきながら、例を出してなかったので補足しておきます。 双三次補間法。(参考:内挿 (Wikipedia)) Photoshop等の多くのグラフィックソフトではバイキュービック(Bi-Cubic)補間と表現されています。 これはバイリニア(線形)補間よりも高精度な補間法で、16近傍の画素値から三次関数を用いて補間します。 用いる式はsinc関数(矩形関数をフーリエ変換したときに得られる)の近似式になります。 これ…

Hilbert Curve – Flex(AS3.0)

Hilbert Curve DEMO (Flex) モチベーションが上がっている内にたくさんコードを書こう。 ヒルベルト曲線をActionScriptで。再帰曲線というやつですね。 これは空間を覆い尽くす空間充填曲線の一つで、画像工学分野にも応用されています。画像の場合だと、画素をヒルベルト曲線順に走査するヒルベルトスキャンという手法があって、それに関連した論文もたくさん出ています。 今回はFlash Player 10で新たに追加されたグラフィックスAPIを使う練習も兼ねて、drawPathと…