1
私はループで処理したい約300のイメージを持っています。すべての反復において、前のループからの画像と画像を比較したい。ループでOpenCVを使って以前の画像を覚えておくには?
私は、現在のイメージを保持しようとしていますに:以前の反復からの画像が中に保存されている
fIplImageHeader
:
lastFIplImageHeader
これは私がそれをやっているし、それは私を与えている方法です例外:
for (int i = 0; i < 300; i++)
{
// get the path to an image (images are named 0.jpg, 1.jpg etc)
// filePath.c_str() contains the path to an image
// load the current image to an IplImage object
IplImage* fIplImageHeader = cvLoadImage(filePath.c_str());
// create a header for te previous image
IplImage* lastFIplImageHeader = cvCreateImageHeader(
cvSize(fIplImageHeader->width, fIplImageHeader->height),
fIplImageHeader->depth, fIplImageHeader->nChannels
);
if (NULL != lastFIplImageHeader->imageData)
{
// COMPARE IMAGES HERE
// only if we are already in 2nd + iteration
}
// copy the current image to the lastFIplImageHeader
// which will hold it in the next iteration
if (lastFIplImageHeader)
{
cvReleaseImage(&lastFIplImageHeader);
}
cvCopy(fIplImageHeader , lastFIplImageHeader);
// do stuff
if (fIplImageHeader)
{
cvReleaseImage(&fIplImageHeader);
}
}
例外:
First-chance exception at 0x753cb727 in Client.exe: Microsoft C++ exception: cv::Exception at memory location 0x0036ef5c..
Unhandled exception at 0x753cb727 in Client.exe: Microsoft C++ exception: cv::Exception at memory location 0x0036ef5c..
例外に関する詳細情報が表示される可能性はありますか? Microsoftの世界ではどうやって入手するのかはわかりませんが、opencvからかなり完全な例外の説明を見ることに慣れています(例えば、失敗したアサーションであれば、アサーションされたものを見ることができます)。 –
@Josh Bleecher Snyder私はその例外からもっと情報を得ることはできません...逆アセンブルだけで、アセンブリコードはまったく理解できません。しかし、私はVisual Studio 2010のプロジェクトをアップロードしました:http://www.mediafire.com/?dmidxzuv3fddbof –
プロジェクトからほとんどのイメージを削除しましたので、メディアファイアにアップロードすることができました。しかし、デバッグするのに十分な5つの画像がまだあります。 –