OpenCV光矢量计算

时间:2014-05-12 19:24:00

标签: c++ opencv

我试图让我的光矢量数学公式

float3 l_ik = p_light - focus / || p_light - focus || 

要获取|| p_light - focus ||的值,请使用cv中的normalize()函数,然后我尝试简单计算A / || B ||因此我试图将公式视为

A / B <=> A * B^(-1) 
in c++:
  float3 l_ik = (p_light - focus) * ( normalize(p_light,focus)^(-1))

结果为no match for 'operator^' in 'math::operator*(...)。这意味着这个运营商没有工具,或者什么?或者是不可能计算向量^( - 1)

这是任何帮助。

1 个答案:

答案 0 :(得分:1)

^是c ++中的'xor'运算符,而不是您的预期。 pow(some_mat, number);似乎更合适

也normalize()用于制作单位向量,并使用src和dst Mat,而你可能想要norm(p_light - focus); // the norm of the diff


(难道你的意思是opengl,而不是opencv?)


[编辑]

昨天非常盲目,你的公式只是单位长度(p_light - 焦点)向量,所以:

Vec3f v = p_light - focus;
Vec3f l_ik = v / norm(v);