gpt4 book ai didi

c++ - 对 RGB 图像使用特征数组

转载 作者:可可西里 更新时间:2023-11-01 18:38:25 26 4
gpt4 key购买 nike

我正在尝试使用 Eigen 库进行一些简单的图像处理。我将 Array3f 用于 RGB 三元组和 Array 来保存 RGB 图像。这似乎部分起作用,我可以方便地对图像进行逐分量加法、乘法和除法。但是某些操作(特别是涉及减法或取反)似乎会产生编译错误。这是一个最小的例子:

#include <Eigen/Core>

using namespace Eigen;

int main(void)
{
typedef Array<Array3f, Dynamic, Dynamic> MyArray;
MyArray m(2,2);

// all of the following should have the same mathematical effect

Array3f v = -Array3f(5.0f); // this compiles

MyArray a = m + v; // this compiles
MyArray b = m + Array3f(-5.0f); // this compiles
MyArray c = m + (-Array3f(5.0f)); // this doesn't compile
MyArray d = m - Array3f(5.0f); // this doesn't compile
}

上面的代码给出了三个错误:

./Eigen/src/Core/CwiseBinaryOp.h:128:7: error: no member named
'YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY' in
'Eigen::internal::static_assertion<false>'
EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename Rhs::Scalar);
...

./Eigen/src/Core/CwiseBinaryOp.h:187:14: error: no matching function for call to object of type 'const
Eigen::internal::scalar_sum_op<Eigen::Array<float, 3, 1, 0, 3, 1> >'
return derived().functor()(derived().lhs().coeff(index),
...

./Eigen/src/Core/../plugins/ArrayCwiseBinaryOps.h:208:10: error: no viable conversion from 'const
CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const Eigen::Array<Eigen::Array<float, 3, 1, 0, 3, 1>, -1, -1, 0, -1, -1>, const
Eigen::CwiseUnaryOp<Eigen::internal::scalar_opposite_op<float>, const Eigen::Array<float, 3, 1, 0, 3, 1> > >' to 'const
CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Eigen::Array<Eigen::Array<float, 3, 1, 0, 3, 1>, -1, -1, 0, -1, -1> >'
return *this + (-scalar);
...

最佳答案

以防有人感兴趣:上面的示例可以在 Eigen 3.3rc1 上正常编译和运行(很可能因为 Eigen 3.3-alpha 也很好)。

我仍然认为此功能是实验性的,因为它既没有文档记录,也不是测试套件的一部分(据我所知)。

关于c++ - 对 RGB 图像使用特征数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com