このquestion'sの回答に基づいて、画像の高域DCT係数を削除して、画像を縮小する必要があります。JPG画像から高域係数を削除する
私はこれを行う方法を探していました。それはそれほど単純ではないようです。私は自分のコードでIDCTを行う次の2つのループを持っており、8 x 8ブロックのサブセットでループを実行すると非常に歪んだ画像しか得られません。
for (coef = 0; coef < 64; coef +=8)
njRowIDCT(&nj.block[coef]); //Inverse Discrete Cosine Transform
for (coef = 0; coef < 8; ++coef)
njColIDCT(&nj.block[coef], &out[coef], c->stride); // Inverse Discrete Cosine Transform
block
私は削除する必要がある係数は、各ブロックの右下隅にあることを知っている64 int
さん
の配列が、しかし、何が削除または廃棄する最善の方法だろうです彼らは正しく?
これで画像が縮小されますか? –
明らかにそうではありません。これは、高周波除去が何を意味するのかを理解するための例でした。私の例を想像してみてください。あなたは実装する必要はありません。あなたがそれを正しく考えるならば、高周波除去は実現可能な解決法ではないことを理解するでしょう。 –
私は今それを得るので、私のイメージをダウンスケールする方法についての答えがありますか? –