Передача указателей IplImage в opencv - PullRequest
0 голосов
/ 01 января 2012

Я хочу передать IplImage * в функцию и отобразить изображение в этой функции. Мой код выглядит следующим образом.

#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <cv.h>
#include <highgui.h>


IplImage* doPyrDown(IplImage* in) {

    cvNamedWindow( "Debug", CV_WINDOW_AUTOSIZE );
    cvShowImage("Debug", in );
    cvWaitKey(0);
    cvReleaseImage(&in );

    IplImage* out = 0;
    return( out );
}

int main(int argc, char *argv[])
{

    cvNamedWindow( "Example6-in", CV_WINDOW_AUTOSIZE );

    IplImage* imgIN = 0;
    IplImage* imgOUT = 0;

    imgIN = cvLoadImage("image.jpg");
    cvShowImage("Example6-in", imgIN );
    cvWaitKey(0);
    cvReleaseImage(&imgIN );

    imgOUT = doPyrDown(imgIN);

    return 0;
}

Исходное изображение отображается в основной функции. Но изображение не отображается в функции doPyrDown. Создается пустое окно под названием «Отладка».

Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 01 января 2012

Вы делаете cvReleaseImage на imgIN перед передачей в doPyrDown. Я не знаком с opencv, но не ожидаю, что cvShowImage сработает после этого.

0 голосов
/ 01 января 2012

Удалить строку cvReleaseImage из основной функции.

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