我在OpenCV中的cvPyrMeansShiftFiltering()函數遇到問題。任何對它的調用都會導致「斷言失敗」消息。帶金字塔均值偏移的OpenCV錯誤(cvPyrMeansShiftFiltering)
以下代碼上調用行失敗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 Error: Assertion failed (udata < (uchar*)ptr && ((uchar*)ptr - udata) <= (ptrdiff_t)(sizeof(void*)+16)) in unknown function, file ......\src\cxcore\cxalloc.cpp, line 76
失敗的斷言是在CV :: cxalloc.cpp中的fastFree()。該程序在VS 2008上運行在Windows 7(64位)上.OpenCV版本爲2.0。
我會補充一點,我也在VS2008和VS2010上都用過OpenCV 2.1。所以它必須是我正在做的事,對吧?爲什麼我得到這個錯誤?