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
我正在 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