最近、OpenCV 2.4.3 をインストールして、ビデオのキャプチャとオブジェクトの区別を試みました。しかし残念なことに、Web カメラでビデオをキャプチャしようとすると、メモリ アクセス違反が発生します。
Visual Studio 2010 (Win 7 x86) と Web カメラ "A4 Tech USB2.0" を使用しています。最初はカメラ自体に問題があるのではないかと思いましたが、videoInput.h
libを使用してカメラからの応答を取得しようとしましたが、まだ結果はありません。(Skype などの他のアプリでは、問題なく認識されます (動作します))。
これがコードです(ほぼ本による):
<pre>
#include "cv.h"
#include "highgui.h"
#include "stdlib.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
CvCapture* capture = cvCreateCameraCapture(CV_CAP_ANY); //cvCaptureFromCAM( 0 );
assert( capture );
double width = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
double height = cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
printf("[i] %.0f x %.0f\n", width, height );
IplImage* frame=0;
cvNamedWindow("capture", CV_WINDOW_AUTOSIZE);
printf("[i] press Esc for quit!\n\n");
if(capture != NULL)
{
while(true)
{
frame = cvQueryFrame( capture ); //it crashes here all the time
cvShowImage("capture", frame);
char c = cvWaitKey(35);
if (c == 27)
{
break;
}
}
}
cvReleaseCapture( &capture );
cvDestroyWindow("capture");
return 0;
}
</pre>
同じ問題に関する他のトピックを読み、いくつかの問題を説明しようとしました: (キャプチャ間の間隔をcvWaitKey(35)
追加し、キャプチャ デバイスが実際に存在するかどうかのチェックを追加しますif (capture != NULL)
)、なぜこれが発生し続けるのかまだ理解できません。
更新:私が基本的に最後に取得するのは、OpenCVwindow とウィンドウ自体の生成された属性を含むコンソールです(灰色の背景のようです)。そしてメモリアクセス違反エラー。