opencvを用いて動画のキャプチャを行いたいと考えています。
具体的に、カメラ全体でのキャプチャではなく、カメラ中央の
指定範囲でのキャプチャを行い、指定範囲の映像のみが
ディスプレイに映るというプログラムを作りたいです。
現在は、動画をキャプチャすることができたのですが、指定領域のキャプチャが
出来ません。
ROI関数を用いてやってみたのですが、エラーが出ました。
解決方法を教えていただけたらと思います。
よろしくお願いします。
動作環境は、VC++2010Express、oprncv2.4.9です。
エラー内容、プログラムを以下に示します。
if ( ( capture = cvCreateCameraCapture( -1 ) ) == NULL ) { //カメラが見つからなかった場合 printf( "カメラが見つかりません\n" ); return -1; } //Windowの生成 //cvNamedWindow("Capture", CV_WINDOW_AUTOSIZE); //カメラ・デバイスから画像を取得 frameImage=cvQueryFrame(capture); //メインループ while ( 1 ) { //カメラからの入力画像1フレームをframeImageに格納する frameImage = cvQueryFrame( capture ); //ROIを用いて短形切り出し //IplImage* image = cvLoadImage("sign.bmp"); //画面中央にROI rect.x = cvRound(frameImage->width * 0.25); rect.y = cvRound(frameImage->height * 0.25); rect.width = cvRound(frameImage->width * 0.5); rect.height = cvRound(frameImage->height * 0.5); //ROI指定 cvSetImageROI(frameImage, rect); //出力先指定 cvCloneImageでROIまるごとコピー output=cvCloneImage(frameImage); //cvSaveImage("test.bmp", frameImage); //ROIを保存 //output=cvCloneImage(//元の画像をコピー //ROIを表示 cvNamedWindow("Capture",CV_WINDOW_AUTOSIZE); cvShowImage("Capture",output);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。