OpenGL Imaging

  • OpenGL の画像処理は次のような順で行われます
    • Image data input
    • Color lookup
    • Convolutions
    • Post-convolution color lookup
    • Color matrix operations
    • Post-color matrix color lookup
    • Histogram calculations
    • Minmax calculations
  • Convolution を使うと、エッジ検出やぼかしなどの画像処理を行うことができます。が、とにかく実行速度が遅い!
glEnable(GL_CONVOLUTION_2D);
//ガウシアンのぼかし
float gaussian[9] = {
  0.075, 0.125, 0.075,
  0.125, 0.200, 0.125,
  0.075, 0.125, 0.075
};
glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_RGB, 3, 3, GL_LUMINANCE, GL_FLOAT, gaussian);

//フィルタが適応された画像が描かれる
glDrawPixels(Width, Height, Format, GL_UNSIGNED_BYTE, image);