2012-02-25 17 views
0

私はビデオプロジェクトでImage Inpaitingに取り組んでいます。画面の一部(ROI)を四角形として選択しています。今私はライブビデオから5つ前のフレームを保存して(私はそれを行うことができます)、5つの異なるアレイ上の5フレーム/画像のROIのピクセル値を保存します。その配列を使って背景を生成し、フォアグラウンドオブジェクトを削除します。openCVで選択したROAをピクセル値に変換する

どのように私はその選択領域の配列のピクセル値を保存することができます知っている?

ありがとうございます。

答えて

1

opencvのC++インターフェイスは、画像ピクセルを格納するためのcv :: Matを使用します。 次のコードは、行列Bの "ポインティング"を行列AのROIに宣言する方法を示しています。 行列は画像です。 ROIは長方形です(x = 0; t = 0; width = 0; height = 100)。 opencv highgui関数を使用してイメージを保存します。

cv::Mat A(640,480,CV_8C3); 
cv::Rect rect(0,0,100,100); 
cv::Mat B = A(rect); 
cv::imwrite("my_roi.pbg",B); 

あなたはcv::Matとして各画像を取得し、取得するためにcv::VideoCapture capcap >> frameを使用し、ビデオからフレームを読み取るために必要がある場合。ビデオファイルの別の位置に移動する場合は、cv::VideoCapture::set(..,CV_FRAME_MSEC)を使用してください。manualをお読みください。

関連する問題