私はGigaE Camera
で作業しています。グレースケール画像で、ビデオを記録したいと思います。だから私は、ウェブカメラで最初に試み、以下の私のコードでいますvideowriter関数はopencv-3.0.0でファイルを保存しません
#include "opencv2\highgui\highgui.hpp"
#include "iostream"
#include "opencv2/opencv.hpp"
#include "opencv2/videoio.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
#include "opencv2/videoio/videoio.hpp"
#include<string>
using namespace cv;
using namespace std;
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:\videos\myVideo12.avi";
int fcc = CV_FOURCC('M', 'J', 'P', 'J');
int fps = 30;
Size frameSize(cap.get(CV_CAP_PROP_FRAME_WIDTH), cap.get(CV_CAP_PROP_FRAME_HEIGHT));
bool isColor = false;
writer = VideoWriter(filename, fcc, fps, frameSize, isColor);
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;
}
が作成した映像が無いと私はあまりにもすべてのエラーを得ることはありません。しかし、OpenCV-2.4.10ではうまく動作します。
'CV_FOURCC( 'M'、 'J'、 'P'、 'J')' - これはむしろ奇妙なFourCCコードのようです。それはMJPGですか? –
はい、ファイルは作成されず、エラーはファイル名の形式によるものです。私は '/'の代わりに '\'を使用しています。さらに、コーデックMPJGはビデオを提供しますが、ノイズの多いぼかしビデオを提供します。コーデックMPEGはより良いビデオ画像を提供します。 – Reddy2810
良い点、エスケープされていないバックスラッシュでその文字列を完全に逃しました:) –