OpenCV 2.3を使用して簡単なWebカメラプログラムを作成しているときに、ランタイムエラーが発生しました。任意のアイデアが評価されます。cvCopyImage/cvResizeで実行中にクラッシュする
コンパイルは実行されますが、実行中に次のエラーが表示されます(以下のコードの 'read'関数のcvCopyImage/cvResizeにあります)。
エラー:
OpenCV Error: Bad argument (Unknown array type) in cvarrToMat, file /usr/local/src/OpenCV/OpenCV-2.3.0/modules/core/src/matrix.cpp, line 641
terminate called after throwing an instance of 'cv::Exception'
what(): /usr/local/src/OpenCV/OpenCV-2.3.0/modules/core/src/matrix.cpp:641: error: (-5) Unknown array type in function cvarrToMat
コードの抜粋:
#include <iostream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace std;
using namespace cv;
Mat* SampleClassA::dispImg = NULL;
int read()
{
Mat* sharedImg;
sharedImg = getFrame();
if (sharedImg)
{
if (dispImg == NULL)
{
SampleClassA::dispImg = sharedImg;
}
cvCopyImage(sharedImg, SampleClassA::dispImg); // Crashes here.
cvResize(sharedImg, SampleClassA::classifyImg); // Can crash here too when cvCopyImage is commented out.
}
sleep(100);
return 1;
}
Mat* getFrame()
//IplImage* ReadRealTime::getFrame()
{
if (!capture.isOpened()) // Actual capturing part is omitted here.
{
return NULL;
}
Mat frame;
capture >> frame;
return &frame;
}
</code>
私の推測では、何か間違ったことは、両方の私はマットを使用する方法、またはポインタに/のいずれかがありますです。私はまだOpenCVとC/C++の両方のポインタに新しいです(別の質問で洞察に満ちたコメントを得ましたCan't save an image captured from webcam (imwrite compile error with OpenCV 2.3)は "ぶら下がりポインタ"を指摘するが、今回は同じですか?)。