具有未签名类型的特征操作

Eigen operations with unsigned type

本文关键字:特征 操作 类型      更新时间:2023-10-16

我正在使用eigen来计算unsigned char类型的两个矩阵之间的差异。

 Eigen::Matrix<unsigned char, 4, 1> C0;
 Eigen::Matrix<unsigned char, 4, 1> C1;
 C0 << 255, 0, 127, 1;
 C1 << 0, 255, 128, 255;
 std::cout << (C0 - C1).cast<int>() << "n";

结果是255 1 255 2。我希望在下水下(如果是添加的(如果是添加))的情况下进行饱和的操作,从而导致255 0 0 0。特征是可能的?

eigen内部没有任何可用的可用。您可以提供一种自定义类型,该类型超载operator+operator-等。就像您打算一样。

当然,理想情况下,这应该在内部使用饱和的SIMD指令(例如_mm_subs_epi8),但这并不容易集成到EIGEN中 - 特别是如果您的矩阵尺寸不是16个字节的倍数。