2

画像ファイルを読み取り、ヘッダーを処理し、画像の色データを文字のポインターへのポインターに格納する C++ プログラムがあります。

unsigned char** pixelData = new unsigned char*[header.width*header.height];
for(int i=0;i<header.width*header.height;i++)
    pixelData[i] = new unsigned char[bytes2read]; //bytes2read is 3(rgb) or 4(rgba)

画像を元のサイズの半分に再スケーリングしたい場合、どうすればそれを行うことができますか? 誰かがこれのための便利なアルゴリズムを知っていますか?

4

2 に答える 2

0

OKの結果を得る最も簡単な方法は、各2x2ピクセルの正方形のR、G、B値を単純に平均することです。

一般的に、あなたがしていることは、各出力ピクセルで新しい値を決定するために画像にフィルターを適用することです。平均は、幅が2のボックスフィルターと呼ばれるものです。使用できるフィルターは他にもありますが、結果は良くも悪くもなりますが、ここから始めます。

于 2013-01-22T16:41:56.110 に答える
0

OpenGLの使用についてはどうですか。これは、OpenGL で行うのはほとんど簡単なことであり、最良の部分は、操作が GPU アクセラレーションであるということです。

于 2013-01-22T15:52:40.833 に答える