等价于 OpenCv c++ api Vec2f,norm, acos in emgucv csharp
Equivalent of OpenCv c++ api Vec2f,norm, acos in emgucv csharp
这里是 OpenCV api 在 c++ 中。
Vec2f
norm
acos
请建议在 emgucv 中什么是 c# 等价物 api?
提前致谢。
Vec2f
根据您的应用,您可以只使用 System.Drawing.PointF
,一个浮点精度二维点将 I
和 J
存储为 X
和 Y
.但是,它不支持您可能喜欢使用的某些 opencv 函数。在这种情况下,Vec2f
只是 float
的 1 x 2 矩阵,为此您可以使用:
Matrix<float> myVec2F = new Matrix<float>(1, 2);
作为奖励,如果您愿意,请使用此 class:
public class Vec2F: Matrix<float>
{
public float I
{
get { return base[0, 0]; }
set { base[0, 0] = value; }
}
public float J
{
get { return base[1, 0]; }
set { base[1, 0] = value; }
}
public Vec2F() : base(2, 1) { }
public Vec2F(float I, float J) : base(2,1)
{
this.I = I;
this.J = J;
}
}
用作:
Vec2F myVec2F = new Vec2F();
Norm
在 2D 向量的上下文中,这只是毕达哥拉斯为了找到大小,但是如果您使用上面的 Matrix<float>
,它现在支持 myVec2F.Norm
。
Acos
System.Math.Acos()
...简单。
这里是 OpenCV api 在 c++ 中。
Vec2f
norm
acos
请建议在 emgucv 中什么是 c# 等价物 api?
提前致谢。
Vec2f
根据您的应用,您可以只使用 System.Drawing.PointF
,一个浮点精度二维点将 I
和 J
存储为 X
和 Y
.但是,它不支持您可能喜欢使用的某些 opencv 函数。在这种情况下,Vec2f
只是 float
的 1 x 2 矩阵,为此您可以使用:
Matrix<float> myVec2F = new Matrix<float>(1, 2);
作为奖励,如果您愿意,请使用此 class:
public class Vec2F: Matrix<float>
{
public float I
{
get { return base[0, 0]; }
set { base[0, 0] = value; }
}
public float J
{
get { return base[1, 0]; }
set { base[1, 0] = value; }
}
public Vec2F() : base(2, 1) { }
public Vec2F(float I, float J) : base(2,1)
{
this.I = I;
this.J = J;
}
}
用作:
Vec2F myVec2F = new Vec2F();
Norm
在 2D 向量的上下文中,这只是毕达哥拉斯为了找到大小,但是如果您使用上面的 Matrix<float>
,它现在支持 myVec2F.Norm
。
Acos
System.Math.Acos()
...简单。