- ベストアンサー
バイキュービック補間のプログラム
現在画像処理のバイキュービック補間のプログラムを作成しているのですがうまくいきません。 手元にソースがないのでお見せできないのですが。 手順としては次のように行っています。 (グレースケール画像) ・点Pの周囲の16画素の色と座標を取る ・点Pと周囲の16座標の距離dを配列に入れる。 (計算式はc*c = a*a + b*bの直角三角形の定理を使用しています) 例)P00とPの距離 a = Px - P00x … xの距離 b = Py - P00y … yの距離 d = sqrt(a*a +d*d) ・距離dにより重みWを決定する。 0 <= d <= 1 W = 1 - 2・d・d + d・d・d 1 < d <= 2 W = 4 - 8・d + 5・d・d + d・d・d 2 < d W = 0 ・各重みと各距離をかけてそれらを合計したものが色になる。 SUMW += W * d[i] Color = SUMW 以上のような方法で行っています。 バイキュービックとしてこれはあっているのでしょうか? プロラムした結果としては アフィン変換後の結果はTVの嵐のような画像になってしまいます。 アフィン変換を角度0、移動0にすると、エッジのような画像が出来上がります。 なにが初心者でも画像処理がわかりやすい書籍等があったら教えていただけると助かります。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答ではないのですが。 有名な、OpenCvと言う画像処理用ライブラリ使ってみたらどうですか。
その他の回答 (1)
- JaritenCat
- ベストアンサー率37% (122/322)
たぶん式が違ってます 1 < d <= 2 のとき W = 4 - 8・d + 5・d・d - d・d・d ではないでしょうか。 とりあえず、式が出てきたらエクセルか何かで、dを0~2まで0.05きざみぐらいでWを計算してグラフを描いてみることをお勧めします。