開発環境 Windows10 Visual Studio 2013 for desktop opencv2.4.9 です.
現在カメラ映像(動画としてaviファイルに保存済み)から青色の物体を検出してその物体の輪郭線を描画したものを保存するというプログラムを作っています.しかしもともとの動画は1分40秒ほどあるのみ保存された動画は1分17秒までしか保存されていません.
自分では全く原因が分からないのでわかる方いらっしゃいましたらお教えください.
#include<opencv2/opencv.hpp>
#include<opencv2/opencv_lib.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
#include<stdio.h>
#include<vector>
using namespace cv;
using namespace std;
int main(void){
Mat Frame, hsv, mask, fil, output;
VideoCapture cap("動画ファイル名.avi");
VideoWriter writer("保存用.avi",-1,30, Size(640, 480), true);
while (true){
cap >> Frame;
imshow("Frame",Frame);
cvtColor(Frame, hsv, CV_RGB2HSV);
imshow("hsv", hsv);
inRange(hsv, Scalar(0, 150, 0), Scalar(180, 255, 255), mask);//青色取得
imshow("mask", mask);
vector<vector<Point> > contours;
findContours(mask, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
output = Mat::zeros(mask.size(), CV_8UC3);
Scalar color = Scalar(0, 255, 0);//輪郭線の色指定(B,G,R)
drawContours(output, contours, -1, color, 2);
imshow("output", output);
writer << output;
if (waitKey(1) == 27){
break;
}
}
}