Mat和Vec_类型乘法

Sza*_*Pał 6 opencv mat

有没有简单的方法来繁殖Mat和Vec_?(前提是它们具有适当的尺寸,例如:

Mat_<double> M = Mat(3,3,CV_32F);
Vec3f V=(1,2,3);
result = M*V //?
Run Code Online (Sandbox Code Playgroud)

也许有一些基于Vec3创建行(或col)Mat的简单方法?

Яoi*_*ois 6

你不能只是繁殖Mat和Vec(或更普遍地Matx_)元素.将Vec对象转换为Mat:

Mat_<float> M = Mat::eye(3,3,CV_32F);
Vec3f V=(1,2,3);
Mat result = M*Mat(V);
Run Code Online (Sandbox Code Playgroud)

另外,我注意到你的代码中有一个错误:构造时M,类型CV_32F对应于float元素,而不是double.我的代码示例中也更正了这一点.

希望它有所帮助.

  • 较小的细节,但这不是“铸件”。实际上,它正在调用接受单个Vec作为参数的Mat构造函数。https://docs.opencv.org/3.4.6/d3/d63/classcv_1_1Mat.html#a507e01fb48b34a3e5c45f9f5b00725e8 (2认同)