gpt4 book ai didi

opencv - 如何确定 cv::Mat 的人类可读类型?

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:37 24 4
gpt4 key购买 nike

我目前的问题是我想知道 cv::Mat 从视频文件中抓取的 cv::Mat 帧的类型。该文档没有具体说明(通常是这种情况,所以即使我在这种特殊情况下忽略了它,它仍然有助于获得处理一般问题的答案)。

当然,我可以打开相应的 OpenCV 头文件并通过 CV_64FC2, ... 宏来找到与 Mat 的 type() 匹配的宏。但我有点厌倦了。一定有更简单的方法。

没有任何函数可以让我将 Mat 的 type() 转换为人类可读的格式吗?像这样:

cv::Mat myMatWithUnknownType;

// Some code modifying myMatWithUnknownType.
// ...

std::string readableType = myMatWithUnknownType.typeString();
std::cout << readableType; // Prints "CV_64FC3".

你是怎么处理的?

最佳答案

首先,来自相机的格式只有一种:CV_8UC3。这是在 OpenCV 中硬编码的,任何视频格式在发送给用户之前都会转换为此。所以

capture >> frame; 

将始终返回一个 RGB 图像,每个 channel 8 位。

现在,对于其他类型,您可以编写函数,注意 OpenCV 支持的类型不多:Mat 可以是 charucharshortushortintuintfloat double,1 到 512 个 channel (根据最新文档)。因此编写您自己的 type_to_string() 并不困难。

关于opencv - 如何确定 cv::Mat 的人类可读类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062027/

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