Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mat and Vec_ types multiplication

Tags:

opencv

mat

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?

like image 833
Szał Pał Avatar asked Jul 21 '14 11:07

Szał Pał


1 Answers

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.

like image 197
Яois Avatar answered Oct 06 '22 05:10

Яois