0

入力画像の各ピクセルを出力画像の場所にマッピングして、画像を転送する必要があります。

たとえば、入力画像の点 (xi,yi) は点 (xo,yo) にマッピングする必要があります。出力画像のポイントの場所を見つけるために、ルックアップ テーブルがあります。

C/C++ で行うのは簡単ですが、非常に遅いです。OpenGL シェーダーを使用して、ターゲット システムで GPU の速度増加を制御する方法はありますか?

opengl を使用できない場合、このプロセスを高速化するにはどうすればよいですか?

編集 1

サンプル c/c++ コードのモック:

class Point
{
    int x;
    int y;
}

Point LUT[w,h];   // would hold LUT

void Transform(image in,image out)
{
     for(int x=0;x<w;x++)
     {
          for(int y=0;y<h;y++)
          {
                color pixelColor=in.GetPixelColor(x,y);
                out.PutPixelColor(LUT[x,y].x,LUT[x,y].y),pixelColor);
          }
     }
}

void main()
{
  image in,out;
  ReadLUT(LUT);    // read LUT from file and fill LUT table
  ReadImage(in);   // read input image.

  Transform(in,out);   // transform image based on LUT
  SaveImage(out);      // write output image

}

4

0 に答える 0