0

このサンプルで示すように、現在、MFT(Media Foundation Transform)を使用してWebカメラのビデオストリームをグレースケールにフィルター処理するMetroスタイルアプリを開発しています。

ただし、露出、色相、輝度、テクスチャ、ビネットなど、他のタイプのフィルタを適用したいと思います。この回答は、これを実現するためにTransformChromaメソッドを変更することになっていることを示しています。残念ながら、Y値を取得する方法がわかりません。UとVしか取得できません。NV12、YUY2、およびUYVYの形式でY値を取得するにはどうすればよいですか。

すべての助けは大歓迎です、そして私はいつも答えを受け入れます!

4

1 に答える 1

0

メソッドのシグネチャを変更する必要があります(potoは別のパラメーターを取り、TransformImage_UYVY、TransformImage_YUY2、およびTransformImage_NV12メソッドを変更して、そのパラメーターを更新されたメソッドに渡します。ただし、その値を自分で抽出する方法を理解する必要があります。たとえば、以下のこのコードを見ると、U値とV値がどのように抽出され、Y値が2バイトに分割されているかがわかります。これらを結合するには、ビットロジックを実行する必要があります。これらの形式の説明を見つけることができます。オンライン、例えばここ

// Byte order is U0 Y0 V0 Y1
// Each WORD is a byte pair (U/V, Y)
// Windows is little-endian so the order appears reversed.
BYTE u = pSrc_Pixel[x] & 0x00FF;
BYTE v = pSrc_Pixel[x+1] & 0x00FF;

TransformChroma(mat, &u, &v);
于 2012-07-31T20:42:02.857 に答える