私は、フィードがYUV形式で入っているテレビキャプチャカードを持っています。私はこの質問に類似した他の投稿を見て、可能なあらゆる方法を試してみましたが、いずれも明確なイメージを提供していませんでした。現時点で最良の結果はOpenCV cvCvtColor(scr, dst, CV_YUV2BGR)
関数呼び出しでした。OpenCVでYUVをBGRまたはRGBに変換する
私は現在YUV形式を認識していません。ちょうど4チャンネルを保存するように見えますが、ちょっと混乱してしまいますが、わずか3です。キャプチャカードからの画像を含めて、空白を埋めるために使用できる可能性があることを誰かが理解できるようにしておきます。
フィードは、DeckLinkの強度Proのカードを介して来ているし、Windows 7環境でのOpenCVを使用してC++アプリケーションにアクセスされています。
更新
私は、この情報に関するWikipediaの記事を見て、自分のアプリケーションで数式を使用しようとしました。以下はコードブロックからの出力を受け取ったコードブロックです。アドバイスをいただければ幸いです。
BYTE* pData;
videoFrame->GetBytes((void**)&pData);
m_nFrames++;
printf("Num Frames executed: %d\n", m_nFrames);
for(int i = 0; i < 1280 * 720 * 3; i=i+3)
{
m_RGB->imageData[i] = pData[i] + pData[i+2]*((1 - 0.299)/0.615);
m_RGB->imageData[i+1] = pData[i] - pData[i+1]*((0.114*(1-0.114))/(0.436*0.587)) - pData[i+2]*((0.299*(1 - 0.299))/(0.615*0.587));
m_RGB->imageData[i+2] = pData[i] + pData[i+1]*((1 - 0.114)/0.436);
}
「私はYUVフォーマットの現在気づかないよ」 - >ウィキペディア。それについて読む:http://en.wikipedia.org/wiki/YUV#Conversion_to.2Ffrom_RGB – NickLH
この記事をリンクしてくれてありがとうございますが、私はay、u、v、およびy1で作業すると仮定しています。これらの変数を使用してRGB相当量を生成しますか?また、4つの異なる配列を作成して、それぞれの値を取り込んで、それらをすべて一緒にマージする必要がありますか? – Seb
RGBでは3つの色成分があるので、3つの配列しか必要としません。しかし、ええ、基本的に色成分を個別に計算し、どこかに保存する必要があります。 – NickLH