C++ OpenCV光矢量计算

C++ OpenCV光矢量计算,c++,opencv,C++,Opencv,我想得到我的光向量,数学公式是 float3 l_ik = p_light - focus / || p_light - focus || 为了获得|p|u light-focus | |的值,使用了cv中的normalize()函数,然后我尝试简单地计算A/| | B | |;因此我尝试将公式视为 A / B <=> A * B^(-1) in c++: float3 l_ik = (p_light - focus) * ( normalize(p_light,focus

我想得到我的光向量,数学公式是

float3 l_ik = p_light - focus / || p_light - focus || 
为了获得
|p|u light-focus | |
的值,使用了cv中的
normalize()
函数,然后我尝试简单地计算A/| | B | |;因此我尝试将公式视为

A / B <=> A * B^(-1) 
in c++:
  float3 l_ik = (p_light - focus) * ( normalize(p_light,focus)^(-1))
A/B A*B^(-1)
在c++中:
浮动3 l_ik=(p_灯光-焦点)*(规格化(p_灯光,焦点)^(-1))
这导致“math::operator*(…)中的“operator^”与
不匹配。这意味着该操作员没有机具,或者什么?或者不可能计算向量^(-1)


对于任何帮助,

^是C++中的“xor”运算符,而不是你所期望的。代码>功率(一些材料、编号)似乎更合适

此外,normalize()用于生成单位向量,并采用src和dst Mat,而您可能需要
norm(p_light-focus);//差异的标准


(你指的是opengl而不是opencv吗?)


[编辑]

昨天我很盲目,你的公式就是单位长度(p_光聚焦)向量,所以:

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

当然,代码> >但是没有<代码> POW(FLUAT3,INT)是的,我的意思是OpenCV:)OpenCV中没有FLAAT3。但是它可能与Vec3flater一起工作,我意识到框架中的
normalize()
函数是
vectorv/length(vectorv)
似乎更容易。但也能按你的方式工作。谢谢