Функция cvMatchTemplate (), выдающая ошибку подтверждения? OpenCV - PullRequest
0 голосов
/ 21 мая 2011

Я пытаюсь отследить изображение, используя cvMatchTemplate(), но получаю ошибку подтверждения ошибки -215. Я надеюсь, что кто-то может понять это. Я убедился, что все ивары не равны нулю, а результаты и шаблоны имеют правильный размер. Я на OpenCV 2.2

    int ww = image->width - template->width + 1;
    int hh = image->height - template->height + 1;
    CvSize tempsize = cvSize(ww, hh);
    IplImage *results = cvCreateImage(tempsize,image->depth, image->nChannels);

    //set the roi
    cvSetImageROI(image, roiFace);
    cvMatchTemplate(image, template, results, CV_TM_SQDIFF_NORMED);

Вот ошибка:

`OpenCV Error: Assertion failed (
result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) 

&& 
result.type() == CV_32F) in 

cvMatchTemplate, file /Volumes/ramdisk/opencv/OpenCV-2.2.0/modules/imgproc/src/templmatch.cpp, line 381
terminate called after throwing an instance of 'cv::Exception'


  what():  /Volumes/ramdisk/opencv/OpenCV-2.2.0/modules/imgproc/src/templmatch.cpp:381: error: (-215) result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) && result.type() == CV_32F in function cvMatchTemplate`

1 Ответ

2 голосов
/ 21 мая 2011

Ширина и высота кажутся нормальными.Может быть, глубина не так.Измените cvCreateImage строку на:

IplImage *results = cvCreateImage(tempsize,IPL_DEPTH_32F, 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...