opencv Mat 16 bits from QVector
opencv Mat 16 bits from QVector
这可能是一个非常基本的问题。我想建立一个cv::Mat从QVector。它在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
。这些类型的大小不同导致的问题。将向量定义为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());
相关文章:
- 将 Qvector<uint8_t> 转换为 QString
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 正确清洁 QVector
- 在 QVector<std::unique_ptr 上使用 std::find<Type>>
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 阅读 QML 中结构C++ QVector 的 QVector
- std::async from std::async in windows xp
- std::is_reference from std::any
- std::time_point from and to std::string
- QDataStream read to QVector
- "No suitable conversion function from 'std::string' to 'const char *' exists"
- std::chrono::time_point from std::string
- Visual accept std::string from std::byte iterator
- C++中链表的错误"Abort signal from abort(3) (sigabrt) "
- 调用QVector::保留即使不知道确切的元素数量?
- dopen():不以 root 身份运行时"failed to map segment from shared object"
- C++ 中的"template <typename From, typename Tag> struct Alias;"是什么?
- from std::vector to adept::avector
- C++Qt QtConcurrent::filtered从std::shared_ptr的QVector减少
- opencv Mat 16 bits from QVector