2010-09-20 60 views
0

我在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。所以它必須是我正在做的事,對吧?爲什麼我得到這個錯誤?

回答

0

嘗試使用最後一個參數!= 0,即參數(max_level)介紹如何規模的金字塔的許多層面將用於分割和它沒有任何意義爲0