Is there any easy way to multiplicate Mat and Vec_? (Provided, that they have proper sizes, e.g.:
Mat_<double> M = Mat(3,3,CV_32F);
Vec3f V=(1,2,3);
result = M*V //?
Maybe there is some easy method of creating row (or col) Mat based on Vec3?
Is there any easy way to multiplicate Mat and Vec_? (Provided, that they have proper sizes, e.g.:
Mat_<double> M = Mat(3,3,CV_32F);
Vec3f V=(1,2,3);
result = M*V //?
Maybe there is some easy method of creating row (or col) Mat based on Vec3?
You can't just multiply Mat
and Vec
(or, more generally, Matx_
) elements. Cast the Vec
object to Mat
:
Mat_<float> M = Mat::eye(3,3,CV_32F);
Vec3f V=(1,2,3);
Mat result = M*Mat(V);
Also, I noticed an error in your code: when constructing M
, the type CV_32F
corresponds to float
elements, not double
. This is also corrected in my code example.
Hope that it helps.
© 2022 - 2024 — McMap. All rights reserved.
Mat
constructor that accepts a singleVec
as an argument. docs.opencv.org/3.4.6/d3/d63/… – Close