私は検出対象のためのカスケードを使用していますが、私が検出した後、私のビデオを保存したいしかし、私はちょうどフレームを保存することができ を(私は最後のフレームを保存することができます)そして、私のコードはここにある:OpenCVの保存ビデオ
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
#include <opencv2/objdetect/objdetect.hpp>
using namespace std;
using namespace cv;
int main()
{
CascadeClassifier nesne;
nesne.load("cascade.xml");
string filename = "a.avi";
VideoCapture capture(filename);
Mat frame;
Mat grires;
namedWindow("algilanan", 1);
while(true)
{
capture>>frame;
cvtColor(frame, grires, CV_BGR2GRAY); //resmi gri renk uzayına çevirir.
vector<Rect> nesvek;
nesne.detectMultiScale(grires, nesvek, 1.1, 3, 0, Size(30,30));
for(int i = 0; i < nesvek.size(); i++)
{
Point pt1(nesvek[i].x + nesvek[i].width, nesvek[i].y + nesvek[i].height);
Point pt2(nesvek[i].x, nesvek[i].y);
rectangle(frame, pt1, pt2, cvScalar(0, 255, 0, 0), 1, 8, 0);
}
int frame_width= capture.get(CV_CAP_PROP_FRAME_WIDTH);
int frame_height= capture.get(CV_CAP_PROP_FRAME_HEIGHT);
VideoWriter video("out.avi",CV_FOURCC('M','J','P','G'),10, Size(frame_width,frame_height),true);
video.write(frame);
imshow("algilanan", frame);
waitKey(33);
}
return 0;
}
フォーマットコード。 – Zernike