2016-12-21 19 views
2

私はGigaEカメラを持っていて、グレースケール画像を与えて、ビデオとして録画して後で処理したい。OpenCV機能を使用したグレースケール画像用のVideowriter機能

ウェブカメラでビデオを録画しようとしましたが、ビデオに書き込む前にグレースケールに変換してみました。私はビデオを取得していません。 私のコードは、私がfcc-1は、それらのどれもが映像を録画することはできませんすべての可能性を試してみました使用済み

int main(int argc, char* argv[]) 
{ 

VideoCapture cap(0); 
VideoWriter writer; 

if (!cap.isOpened()) 
{ 
    cout << "not opened" << endl; 
    return -1; 
} 

char* windowName = "Webcam Feed"; 
namedWindow(windowName, CV_WINDOW_AUTOSIZE); 


string filename = "D:\myVideo_greyscale.avi"; 
int fcc = CV_FOURCC('8', 'B', 'P', 'S'); 
int fps = 30; 
Size frameSize(cap.get(CV_CAP_PROP_FRAME_WIDTH),cap.get(CV_CAP_PROP_FRAME_HEIGHT)); 
writer = VideoWriter(filename,-1,fps,frameSize); 

if(!writer.isOpened()) 
{ 
    cout<<"Error not opened"<<endl; 
    getchar(); 
    return -1; 
} 


while (1) 
{ 

    Mat frame; 

    bool bSuccess = cap.read(frame); 

    if (!bSuccess) 
    { 
     cout << "ERROR READING FRAME FROM CAMERA FEED" << endl; 
     break; 
    } 
    cvtColor(frame, frame, CV_BGR2GRAY); 
    writer.write(frame); 
    imshow(windowName, frame); 
} 

return 0; 

} `

を下回っています。 fcccreating a grayscale video using opencvもを持っていますが、それは私を助けませんでした。

は、私がブレークポイントenter image description here

答えて

1

VideoWriterをビデオは、グレースケールまたはカラーであるかどうかを指示するオプションのパラメータを使用した後に、デバッグ中にこのエラーが発生します。デフォルトist color = true。試してみてください

bool isColor = false; 
writer = VideoWriter(filename,-1,fps,frameSize, isColor); 
+0

ちょっとミカ、私はそれを試してみました。私はフレームfccはCV_FOURCC( 'D'、 'I'、 'V'、 '3')を持っています。または、グレースケール画像用に他の特定のコーデックをご存知ですか? – Reddy2810

+0

、ごめんなさい。 「カラー」に変換するオプションがありますか? cv :: cvtColor(src、dst、CV_GRAY2BGR)。 – Micka

+0

ちょっと動作しますが、私のGigaE Proカメラでは動作しません – Reddy2810

関連する問題