合計 昨日 今日

opencvでの動画保存に関して

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: ttb
[URL]
ぴよぴよ(658 ポイント)
Date: 2017年10月10日(火) 10:30
No: 1
(OFFLINE)

 opencvでの動画保存に関して

いつもお世話になっております.
開発環境 Windows10 Visual Studio 2013 for desktop opencv2.4.9 です.
現在カメラ映像(動画としてaviファイルに保存済み)から青色の物体を検出してその物体の輪郭線を描画したものを保存するというプログラムを作っています.しかしもともとの動画は1分40秒ほどあるのみ保存された動画は1分17秒までしか保存されていません.
自分では全く原因が分からないのでわかる方いらっしゃいましたらお教えください.
コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#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;
        }
    }
}

Name: usao
[URL]
ハッカー(140,412 ポイント)
Date: 2017年10月13日(金) 13:12
No: 2
(OFFLINE)

 Re: opencvでの動画保存に関して

保存時に無圧縮にしていますか?
その場合,圧縮形式を変えると保存できたりしませんか?

もしそうであれば,
AVIには2GBの制限があるので,そのせいかもしれません.

VBGサイズ3chの画像はざっくり900KB
→秒間30フレームなら 1秒あたり27MB
→何秒で2GBになるかを電卓で計算 : 2048/27 ≒ 75.852 → 1分と15秒ちょい

で,おおよそ
> 1分17秒
に近い感じかな,と.

Offtopic :
OpenCVで無圧縮AVI作ると,それをOpenCVで読めないとかいう,厄介な問題があった記憶

Name: ttb
[URL]
ぴよぴよ(658 ポイント)
Date: 2017年10月16日(月) 14:04
No: 3
(OFFLINE)

 Re: opencvでの動画保存に関して

無圧縮にしてしています.
2GBの制限があるのは知りませんでした.
圧縮をして一度試してみたいと思います.

Name: usao
[URL]
ハッカー(140,412 ポイント)
Date: 2017年10月16日(月) 14:55
No: 4
(OFFLINE)

 Re: opencvでの動画保存に関して

> VBGサイズ

おっと,typo(?)ですね.
正しくは「VGAサイズ」です.失礼しました.


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[19人]