当我们要使用QVariant类型来保存自定义类型的使用需要执行下面这个语句来进行注册:
Q_DECLARE_METATYPE(cv::Mat);
然后后面就可以这样使用QVariant保存cv::Mat对象了:
//创建一个cv::Mat类型的变量mat,并且读取一张图片保存在mat变量中
cv::Mat mat = cv::imread("test.png");
//将mat保存在QVariant类型变量variant 中
QVariant variant = QVariant::fromValue(mat);
//variant.value<cv::Mat>()将variant转换成cv::Mat类型并使用imshow进行显示
cv::imshow("image",variant.value<cv::Mat>());