Ошибка OpenCV со средним смещением пирамиды (cvPyrMeansShiftFiltering) - PullRequest
0 голосов
/ 20 сентября 2010

У меня проблемы с функцией 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.Так что должно быть чем-то, что я делаю, верно?Почему я получаю эту ошибку?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2010

Я решил аналогичную проблему, применив изменения, как описано в https://code.ros.org/trac/opencv/changeset/3081/trunk/opencv/modules/imgproc/src/segmentation.cpp

Я заново создал файл dll, создав проект openCV.sln, как описано в http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010_CMake

Последнийпараметр должен действительно отличаться от 0.

0 голосов
/ 02 декабря 2010

Попробуйте использовать последний параметр! = 0. Этот параметр (max_level) описывает, сколько уровней масштабной пирамиды будет использовано для сегментации, и не имеет смысла быть равным 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...