OpenCV 是否在具有不同 int 大小的平台上运行?

Does OpenCV runs on platforms with different int size?

我正在 OpenCV 之上编写一个库,我对跨平台能力有疑问。

我的问题是:如果 int 大小不是 32 位,而是 16、64 或 128,OpenCV 会运行吗?因为如果是的话,我想支持那些平台,否则它会简化我的高级接口。我没有找到任何信息,而且我对 C++ 也不是很熟悉,无法通过查看资源自行解决这个难题。

假定 int 类型为 4 字节宽:https://github.com/opencv/opencv/blob/master/modules/core/include/opencv2/core/hal/interface.h

  • 移位和掩码; 16位肯定会坏掉。
  • 通用 128 位 SIMD C++ 实现假定 128 位寄存器 = 4 x int 值
  • 一些算法使用 SoftFloat 库,假设 int = int32_t(示例)
  • int 矩阵的类型标识符命名为 CV_32S
  • ...?

所以:答案是 "No"。

感谢@mshabunin