読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

iSightを使って録画する

動機

参加している講習会の課題だったが、Macな自分だけ問題が発生したためメモっておく。

方法

だいたいの流れはこんな感じになる。

#define OUT_VIDEO_FILE "output_video.avi"
capture = cvCaptureFromCAM(0);
CvVideoWriter* video = cvCreateVideoWriter(OUT_VIDEO_FILE, -1, 30, cvSize(640, 480), 1);
while(1) {
    if (capture) {
        frame = cvRetrieveFrame(capture);
        cvWriteFrame(video, frame);
    }
}

で、いきなりこれを実行すると落ちます。

OpenCV ERROR: Internal error (Cannot create data reference from file name)
in function cvCreateVideoWriter, cvcap_qt.cpp(1192)
Terminating the application...
called from cvUnregisterType, cxpersistence.cpp(4933)
Terminating the application...

Macでやる場合はあらかじめファイルを作っておいてあげないといけません。

# touch OUT_VIDEO_FILE_NAME

まとめ

Intelが配布しているだけあって、OpenCVはMacではまだまだ使い勝手はよくないのかな?