2017-10-24 32 views
5

私はそれを検出して顔をスリム化または肥満化させるAndroidアプリケーションを開発中です。現在、薄板スプラインアルゴリズムを使用してこれを実現しています。 http://ipwithopencv.blogspot.com.tr/2010/01/thin-plate-spline-example.htmlルックアップテーブルを使用したOpenGLイメージのワーピング

問題はアルゴリズムが私にとっては十分速くないため、OpenGLに変更することにしたということです。いくつかの調査の後、ルックアップテーブルのテクスチャがこのための最良のオプションであることがわかります。私は、ソース画像のための制御点のセットと、ワープ効果のためのそれらの新しい位置を持っています。 ワープエフェクトを取得するためにルックアップテーブルテクスチャを作成するにはどうすればよいですか?

答えて

1

本当に確認テクスチャが必要ですか?

テクスチャ付き長方形メッシュ(または、矩形以外のメッシュであることはもちろん、顔検出アルゴリズムのように、顔のようなメッシュを返している可能性が高い)があり、それに応じてワープした方が良いでしょう。アルゴリズム:

enter image description here

だけではなく、したがって、並列に各メッシュノードを処理し、頂点シェーダでそれを行うことができるだけでなく、動的テクスチャ生成に比べて処理するために以下の値をそれ `s you`d。

これを達成する最も互換性のある方法は、各メッシュポイントに0のY座標とメッシュインデックスが格納されるX座標を与え、テクスチャを渡すことです(ターゲットデバイスがサポートする場合はbuffer textureでも可能です)。頂点シェーダ。ここで、必要なインデックスで、RチャンネルとGチャンネルには、目的のX座標とY座標が含まれています。

頂点シェーダの内部では、座標はテクスチャからロードされます。

この手法では、ターゲットデータテクスチャが適切に更新されている場合(たとえば、ピクセルシェーダ内で)、ジオメトリをリロードせずに動的ワーピングが可能です。

関連する問題