OpenCVを用いた動画処理
OpenCVを用いてaviファイルの読み込み、および、書き込みをしようとしているのですが、
指定のaviファイルが見つかりませんでした.
というエラー処理の表示しか行われず困っています。
教えていただけませんでしょうか?
よろしくお願いします。
読み込もうとしているファイルはデスクトップ上のOpenCVというフォルダのinput.aviというファイルです。
プログラムは以下に残します。
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <stdio.h>
//読み込む動画ファイル名
char* input_filename="input.avi";
//書き込む動画ファイル名
char* output_filename="output.avi";
//IplImage
IplImage* src;
IplImage* gray;
IplImage* canny;
int main(){
CvCapture* capture = NULL;
int key; //キー入力
// Cannyオペレータのパラメータ------
double low_threshold=50.0;
double high_threshold=200.0;
int aperture_size=3;
//---------------------------------
// ファイル書き込み設定--------------
CvVideoWriter *writer = 0;
int isColor = 1;
int fps = 30; // フレームレート
int frameW = 320; // width
int frameH = 240; // hight
//-----------------------------------
//指定したAVIファイルが見つからない場合は終了
if(NULL==(capture = cvCaptureFromAVI(input_filename))){
fprintf(stderr,"指定のaviファイルが見つかりませんでした.");
return -1;
}
gray = cvCreateImage( cvSize(frameW,frameH), IPL_DEPTH_8U, 1 );
canny = cvCreateImage( cvSize(frameW,frameH), IPL_DEPTH_8U, 1 );
gray->origin = 1; //orginを入力側に合わせる
canny->origin = 1; //orginを入力側に合わせる
writer=cvCreateVideoWriter(output_filename,-1,fps,cvSize(frameW,frameH),isColor);
//画像表示ウィンドウの準備
cvNamedWindow("Edge Image", CV_WINDOW_AUTOSIZE);
//画像表示ウィンドウの出現位置指定
cvMoveWindow("Edge Image", 50, 50);
//処理ループの開始
for(;;){
//AVIファイルからフレーム画像を取り出す
if(NULL==(src=cvQueryFrame(capture))){
break;
}
//グレースケールに変換
cvCvtColor(src, gray, CV_BGR2GRAY);
//Cannyオペレータによるエッジ検出
cvCanny(gray, canny, low_threshold, high_threshold, aperture_size);
//フレーム書き込み
cvWriteFrame(writer,canny);
//画像表示
cvShowImage("Edge Image", canny);
//キー入力
key = cvWaitKey(20);
//ESCキーを押すと終了
if(key==0x1b)
break;
}
//解放
cvReleaseVideoWriter(&writer);
cvReleaseCapture(&capture);
cvReleaseImage(&src);
cvReleaseImage(&gray);
cvReleaseImage(&canny);
cvDestroyWindow("Edge Image");
return 0;
}
以上です。
よろしくおねがいします。