Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opencv Mat来自QVector的16位_C++_Qt_Opencv - Fatal编程技术网

C++ opencv Mat来自QVector的16位

C++ opencv Mat来自QVector的16位,c++,qt,opencv,C++,Qt,Opencv,这也许是一个非常基本的问题。 我想从QVector构建一个cv::Mat。它在8位Mat机中运行良好 QVector<uchar> vector; vector<<1<<289<<3000<<7<<2<<255<<266<<288; Mat testMat(2,4,CV_8UC1,vector.data()); 但当我使用16位的垫子时 QVector<uint> vecto

这也许是一个非常基本的问题。 我想从QVector构建一个cv::Mat。它在8位Mat机中运行良好

QVector<uchar> vector;
vector<<1<<289<<3000<<7<<2<<255<<266<<288;
Mat testMat(2,4,CV_8UC1,vector.data());
但当我使用16位的垫子时

QVector<uint> vector;
vector<<1<<289<<3000<<7<<2<<255<<266<<288; 
Mat testMat(2,4,CV_16UC1,vector.data());
我的问题是为什么会发生这种情况,以及在没有这些0的情况下如何显示。
谢谢大家!

CV_16UC1
具有基础类型
无符号短码
,但不具有
uint
。这些类型的大小不同导致的问题。将向量定义为
QVector。这应该可以解决问题:

QVector<unsigned short> vector;
vector<<1<<289<<3000<<7<<2<<255<<266<<288; 
Mat testMat(2,4,CV_16UC1,vector.data());
QVector;
矢量
[1, 0, 289, 0;
 3000, 0, 7, 0]
QVector<unsigned short> vector;
vector<<1<<289<<3000<<7<<2<<255<<266<<288; 
Mat testMat(2,4,CV_16UC1,vector.data());