繁体   English   中英

Opencv矩阵乘法

[英]Opencv Matrix multiplication

我需要将一个矩阵及其转置相乘,但出现以下错误:

“ OpenCV错误:断言失败(类型== B.type()&&(类型== CV_32FC1 ||类型== CV_64FC1 ||类型== CV_32FC2 ||类型== CV_64FC2))。 .. \\ src \\ opencv \\ modules \\ core \\ src \\ matmul.cpp,第711行“

这是代码:

int dA[] = {
     1,     2,     3,
     4,     5,     6,
     6,     5,     4,
    }; 
Mat A = Mat(3,3, CV_32S, dA );
Mat C = A.t()* A;

OpenCV仅对浮点实数或复数类型的矩阵支持矩阵乘法。

您正在创建有符号整数类型的矩阵。

支持的类型有:

CV_32FC1 //real float
CV_32FC2 //complex float
CV_64FC1 //real double
CV_64FC2 //complex double

以下类似的代码将起作用:

float dA[] = {
     1,     2,     3,
     4,     5,     6,
     6,     5,     4,
    }; 
Mat A = Mat(3,3, CV_32F, dA );
Mat C = A.t()* A;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM