4

似乎在 OpenCV 中,int数据类型总是被假定为 32 位。这反映在文档中(例如,在介绍中),也反映在源代码中(例如,在注释中modules/core/include/opencv2/core/cvdef.h,以及它定义uint为 32 位无符号整数,但未定义对应的有符号类型)。

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

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

4

1 回答 1

1

在 int 不是 32 位的系统上,这如何不会破坏 OpenCV?

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

获得至少 32 位宽的快速类型的干净方法是使用int_fast32_tfrom 类型<stdint.h>,但这需要 C99 支持,而微软的 C 编译器长期以来不支持该标准。

于 2013-10-25T14:45:45.547 回答