Opencv C++ 声明 uint8 类型的矩阵
Posted
技术标签:
【中文标题】Opencv C++ 声明 uint8 类型的矩阵【英文标题】:Opencv C++ Declaring a matrix of type uint8 【发布时间】:2018-01-24 21:22:11 【问题描述】:相当简单的问题:我想知道如何在 opencv 中指定矩阵的类型。我正在查看此页面https://docs.opencv.org/trunk/dc/d84/group__core__basic.html,它为具有 cv::Mat1f 等的浮点矩阵指定了 typedef。我不熟悉 C++;我可以使用他们在 typedefs 中所做的类似事情来制作我自己的 uint8 矩阵吗?
Mat_< uint8 > mymatrix;
或类似的东西?我可以自己做 typedef 吗?
【问题讨论】:
【参考方案1】:C++ 中的标准类型是uint8_t
,即Mat_< uint8_t > mymatrix;
。你需要#include <cstdint>
。
你也可以自己做typedef
typedef Mat_< uint8_t > uint8_matrix_type;
或类似的东西。
【讨论】:
【参考方案2】:你应该使用内置的:
cv::Mat1b
在mat.hpp
中定义为:
typedef Mat_<uchar> Mat1b;
uchar
在 interface.h
中定义:
//! - uchar - unsigned 1 byte integer
typedef unsigned char uchar;
您也可以typedef
使用您喜欢的类型的矩阵,但是您可能会遇到奇怪的错误,因为它的DataType
(在traits.hpp
)不会被指定,所以它可能与某些 OpenCV 功能不兼容。
【讨论】:
以上是关于Opencv C++ 声明 uint8 类型的矩阵的主要内容,如果未能解决你的问题,请参考以下文章