似乎在OpenCV中,int
数据类型始终假定为32位。这反映在文档中(例如,in the introduction),也包含在源代码中(例如,modules/core/include/opencv2/core/cvdef.h
的注释中,以及它定义uint
的事实一个32位无符号整数,但没有定义相应的有符号类型。)
如何在int
不是32位的系统上打破OpenCV?毕竟,int
只能保证标准为16位。
我原本希望OpenCV为它使用的所有大小定义数据类型(就像它对int64
所做的那样),或者使用uint_8
和朋友。
答案 0 :(得分:1)
这怎么不在int不是32位的系统上破坏OpenCV?
可能,是的。您应该尝试在这样的系统上构建以确保。再说一次,祝你好运,找到一个仍然有足够内存和CPU能力来做有意义的计算机视觉的系统;如今,16位int
通常可以在非常小的嵌入式系统上找到。
获得至少32位宽的快速类型的简洁方法是使用int_fast32_t
中的<stdint.h>
类型,但这需要C99支持,而Microsoft的C编译器长期以来不支持该标准。