gpt4 book ai didi

c++ - opencv Mat 16位来自QVector

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:58 25 4
gpt4 key购买 nike

这可能是一个非常基本的问题。我想从 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());

输出:

[  1,  33, 184,   7;
2, 255, 10, 32]

但是当我使用 16 位 Mat.

QVector<uint> vector;
vector<<1<<289<<3000<<7<<2<<255<<266<<288;
Mat testMat(2,4,CV_16UC1,vector.data());

结果变成:

[1, 0, 289, 0;
3000, 0, 7, 0]

我的问题是为什么会发生这种情况以及如何在没有这些 0 的情况下显示。谢谢!

最佳答案

CV_16UC1具有基础类型 unsigned short , 但不是 uint .由这些类型的不同大小引起的问题。将您的 vector 定义为 QVector<unsigned short> vector; .这应该可以解决问题:

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

关于c++ - opencv Mat 16位来自QVector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40238493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com