假设在OpenCV中`int`总是32位?

时间:2013-10-25 14:28:47

标签: c++ opencv

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

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

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

1 个答案:

答案 0 :(得分:1)

  

这怎么不在int不是32位的系统上破坏OpenCV?

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

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