• 締切済み

ウェーブレット変換の順変換と逆変換について

1行の画像をimage1[0][k]に入れて、 ウェーブレット変換をしてc[a][b]を求め、 そこから逆変換してimage2[0][k]に戻す その際のウェーブレットはメキシカンハット型にしているつもりです このようなプログラムを作っているのですが、 順変換 t=pow(2,-a)*k-b; c[a][b]+=image1[0][k]*( pow(2,-2/a) * (1-pow(t,2) ) * exp( 1/2*pow(t,2) ) ); 逆変換 temp[k]+= pow(a,-2) * c[a][b]* pow(2,-2/a) * (1-pow(t,2) * exp( -1/2*pow(t,2) ) ) ); image2[0][k]=(int)floor(temp[k]); それぞれa,b,kはループをかけています。 これでtemp[k]を見ると恐ろしいほどずれた数字が入ってしまいます。 何が間違っているのか、恐らく計算が間違えていると思うのですが どこが間違えているのかを教えていただきたいです。 是非よろしくお願いします。

みんなの回答

回答No.1

>temp[k]+= … >temp[k]を見ると恐ろしいほどずれた数字が temp[k]に「加算だけ」してるけど、初期化はしてますか? 初期化するのを忘れ、初期値に「恐ろしいほどずれた数字」が入っていれば、最後まで「恐ろしいほどずれた数字のまま」ですけど。

関連するQ&A