以cv::Mat为例,需要将cv::Mat序列化和反序列话,并且可以在信号和槽中使用
声明时:
Q_DECLARE_METATYPE(cv::Mat);
inline QDataStream& operator<<(QDataStream& out, const cv::Mat& info)
{
QImage tmpimg = cvMat2QImage(info);
out << tmpimg;
return out;
};
inline QDataStream& operator>>(QDataStream& in, cv::Mat& info)
{
QImage tmpimg;
in >> tmpimg;
info = qImageToMat(tmpimg);
return in;
};
使用信号和槽时:
qRegisterMetaType<cv::Mat>("cv::Mat");
使用QSetting保存和读取配置时:
qRegisterMetaTypeStreamOperators<cv::Mat>("cv::Mat");