c++ - `int` 假定在 OpenCV 中始终为 32 位?

标签 c++ opencv

似乎在 OpenCV 中,int 数据类型总是假定为 32 位。这反射(reflect)在文档中(例如,in the introduction),也反射(reflect)在源代码中(例如,在 modules/core/include/opencv2/core/cvdef.h 的注释中,以及它将 uint 定义为 32 位无符号整数,但没有定义相应的有符号类型这一事实。

int 不是 32 位的系统上,这如何不破坏 OpenCV?毕竟,标准只保证 int 是 16 位。

我希望 OpenCV 为其使用的所有大小定义数据类型(就像它为 int64 所做的那样),或者使用 uint_8 和 friend 。

最佳答案

How does this not break OpenCV on systems in which int isn't 32 bits?

可能是的。您应该尝试在这样的系统上构建以确保。再一次,我祝你好运,找到这样一个系统,它仍然有足够的内存和 CPU 能力来做有意义的计算机视觉; 16 位 int这些天通常在非常小的嵌入式系统中找到。

获得至少 32 位宽的快速类型的简洁方法是使用 int_fast32_t<stdint.h> 输入,但这需要 C99 支持,而 Microsoft 的 C 编译器长期以来一直不支持该标准。

关于c++ - `int` 假定在 OpenCV 中始终为 32 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19592598/

相关文章:

c++ - 具有许多功能的python-c++接口(interface)的代码的pythonic结构是什么?

c++ - 使实现多个接口(interface)的 COM 类保持可管理的好方法

c++ - C++11 中的新保留字是什么?

opencv - 如何预测更接近测试数据的第二类

c# - 如何在 EmguCV 中使用 C# 中的迭代器?

vb.net - Emgu 3.0+中图像的DFT

c++ - 将延时图像附加到视频文件

c++ - 使用 printf 和 cout 获得不同的输出 - C++

opencv - OpenCV在图像中查找特定坐标

c++ - 使用 vector 控制显示输出