У меня проблемы с функцией cvPyrMeansShiftFiltering () в OpenCV.Любой вызов этого приводит к сообщению «Ошибка подтверждения».
В строке, вызывающей cvPryMeanShiftFiltering, не выполняется следующий код:
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include <iostream>
using namespace std;
int main()
{
string imageFile = "..\\bear.jpg";
IplImage* src = cvLoadImage(imageFile.c_str());
int width = src->width;
int height = src->height;
IplImage* result = cvCreateImage(cvSize(width,height),8,3);
cvPyrMeanShiftFiltering(src,result,4.0,4.0,0);
cvReleaseImage(&src);
cvReleaseImage(&result);
return 0;
}
Программа работает до тех пор, пока на консоль не будет отправлено следующее сообщение об ошибке:
OpenCVОшибка: утверждение не выполнено (udata <(uchar *) ptr && ((uchar *) ptr - udata) <= (ptrdiff_t) (sizeof (void *) + 16)) в неизвестной функции, файл ...... \ src\ cxcore \ cxalloc.cpp, строка 76 </p>
Неудачное утверждение находится в cv :: fastFree () в cxalloc.cpp.Программа работает на Windows 7 (64-разрядная версия) на VS 2008. Версия OpenCV - 2.0.
Я добавлю, что я также пробовал это с OpenCV 2.1 на VS2008 и VS2010.Так что должно быть чем-то, что я делаю, верно?Почему я получаю эту ошибку?