【发布时间】:2018-07-11 16:45:02
【问题描述】:
我在 Qt 应用程序中使用 opencv。我已经看到了一些通用的 c++ 方法来打印 Mat 的值,并且已经使用
cout << "myMat = "<< endl << " " << myMat << endl << endl;
理想情况下,我可以拥有一个包含此 Mat 内容的 QString。有没有一种巧妙的方法来做到这一点?
【问题讨论】:
标签: qt opencv qstring opencv-mat
我在 Qt 应用程序中使用 opencv。我已经看到了一些通用的 c++ 方法来打印 Mat 的值,并且已经使用
cout << "myMat = "<< endl << " " << myMat << endl << endl;
理想情况下,我可以拥有一个包含此 Mat 内容的 QString。有没有一种巧妙的方法来做到这一点?
【问题讨论】:
标签: qt opencv qstring opencv-mat
您可以使用ostringstream 及其方法str() 来获取可以作为参数传递给QString 构造函数的字符串。
cv::Mat M(2,2, CV_8UC3, cv::Scalar(0,0,255));
ostringstream oss;
oss << "M = " << endl << " " << M << endl;
QString matContent(oss.str()); // QT3
QString matContent2(oss.str().c_str()); // QT4/5 (const char*) constructor
【讨论】:
error: conversion from ‘std::basic_ostringstream<char>::__string_type {aka std::basic_string<char>}’ to non-scalar type ‘QString’ requested 但它让我非常接近所以谢谢你。我会把我的解决方案作为答案。