2017-05-15 7 views
0

効率についての考えを探していますが、何も深いことはありません。私はいくつかの質問をする前に私がやろうとしていることを説明します。ビデオデータからのRGBデータの収集

現在のフレームの特定のピクセルのRGBデータを読み込んだり出力したりしながら、ビデオファイル(フォーマットではない)をバックグラウンドで「再生」することができますリアルタイムで、 "再生"ビデオをフレーム単位で再生します。

OpenCVを使ってこれを行う方法を調べましたが、私は研究を続けながら入力を求めていたと思いました。したがって、質問:

これはどのような方法で実現できますか、最も効率的な/リソースライト方法は何ですか?

注:主要な言語は問題ありませんが、私はC++で最も経験が豊富です。

ありがとうございます! - カールイル

+2

このピクセルをどこに出力しますか?どのような目的のために?どのプラットフォーム/ OSですか? –

+2

['VideoCapture's docs](http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture) - この例を変更してファイルを読み込んでループを修正するのは簡単ですそれで、現在のものではなく、目的のピクセルを出力します。 –

答えて

0

このヘルプが欲しいです。

VideoCapture cap("videofile"); 

if(!cap.isOpened() 
{ 
return -1; 
} 
    Mat img; 

    while(1) 
    { 

    cap >> img; 

    for (int i = 0; i < img.cols; i++) { 
      for (int j = 0; j < img.rows; j++) { 

       Vec3b intensity = img.at<Vec3b>(j, i); 

       uchar blue = intensity.val[0]; 
       uchar green = intensity.val[1]; 
       uchar red = intensity.val[2]; 
      } 

     } 

imshow("show", img); 
    if(cap.empty()) 
       break; 
    waitKey(30); 

    } 
+0

**コンテンツをダンプする前に、 'cap'が空であるかどうかを確認するほうがおそらく良いでしょう。また、ファイルを表示しない場合、 'waitkey()'は必要ありません。 –

関連する問題