Opencv C ++声明类型为uint8的矩阵

时间:2018-01-24 21:22:11

标签: c++ opencv templates matrix typedef

相当简单的问题:我想知道如何在opencv中指定矩阵的类型。我正在查看此页面https://docs.opencv.org/trunk/dc/d84/group__core__basic.html,它使用cv :: Mat1f指定浮点矩阵的typedef,依此类推。我不熟悉C ++;我可以使用他们在typedef中执行的类似操作来创建自己的uint8矩阵吗?

Mat_< uint8 > mymatrix;或类似的东西?我可以制作自己的typedef吗?

2 个答案:

答案 0 :(得分:0)

C ++中的标准类型是uint8_t,即Mat_< uint8_t > mymatrix;。您需要#include <cstdint>

您也可以制作自己的typedef

typedef Mat_< uint8_t > uint8_matrix_type;

或类似的东西。

答案 1 :(得分:0)

你应该使用内置的:

cv::Mat1b

mat.hpp中定义为:

typedef Mat_<uchar> Mat1b;

uchar中定义了interface.h

//! - uchar  - unsigned 1 byte integer
typedef unsigned char uchar;

您还可以typedef使用您偏好的类型的矩阵,但可能会遇到奇怪的错误,因为DataTypetraits.hpp}中的@WebMvcTest(HomeController.class , BookController.class) public class ControllerTest{ 不会指定,因此可能与某些OpenCV函数不兼容。