Ваш вопрос ...
Как именно вы вызываете эти функции?Учитывая ваш класс ImageConverter, вот как вы должны это делать:
// First create a new converter
ImageConverter conv;
IplImage* ipl = conv.QImage2IplImage(qimg);
qimg = conv.IplImage2QImage(ipl);
... И некоторые советы по использованию классов
Случайно ли вы пришли из Java или C # фона??Если это так, вы должны знать, что в C ++ у вас также могут быть свободные функции (которые не принадлежат ни одному классу).Вы должны использовать классы только тогда, когда вам нужно абстрагировать определенную (реальную реальность) концепцию, а не просто как способ группировки функций:
// image_converter.h
IplImage* QImage2IplImage(const QImage* qimg);
QImage* IplImage2QImage(const IplImage* iplImg);
// someother.cpp
IplImage* ipl = QImage2IplImage(qimg);
qimg = IplImage2QImage(ipl);
Обратите внимание, что я добавил const
к параметрам функции - этохорошая вещь, чтобы быть const правильной .Кроме того, вы можете сгруппировать свои функции в пространстве имен:
// image_converter.h
namespace converter
{
IplImage* QImage2IplImage(const QImage* qimg);
QImage* IplImage2QImage(const IplImage* iplImg);
}
// someother.cpp
IplImage* ipl = converter::QImage2IplImage(qimg);
qimg = converter::IplImage2QImage(ipl);