OpenCV光矢量计算

  • 本文关键字:计算 OpenCV 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)

谢谢你的帮助

^是c++中的'异或'操作符,而不是您所期望的。pow(some_mat, number);似乎更合适

也normalize()用于制作单位向量,并接受src和dst Mat,相反,您可能想要norm(p_light - focus); // the norm of the diff


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


[编辑]

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

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

相关内容

  • 没有找到相关文章

最新更新