gpt4 book ai didi

c++ - OpenCV简单2D矩阵乘法失败

转载 作者:行者123 更新时间:2023-12-02 10:38:23 26 4
gpt4 key购买 nike

我只是想将两个简单的2D矩阵相乘。

#include <iostream>
#include "opencv2/core.hpp"

using namespace std;
using namespace cv;

int main(const int argc,const char* argv[])
{

Mat A = (Mat_<char>(2,2) << 1,2,3,4);
Mat B = (Mat_<char>(2,2) << 2,2,2,2);
Mat C = A*B;

cout << C << endl;

return 0;
}

为什么我会得到核心转储(gemm)?

抛出'cv::Exception'实例后终止调用
what():OpenCV(4.1.0)/OpenCV/opencv-4.1.0/modules/core/src/matmul.dispatch.cpp:337:错误:(-215:断言失败)(type ==(((5 )&((1 << 3)-1))+((((1)-1)<< 3))||类型==(((6)&((1 << 3)-1))+ ((((1)-1)<< 3))||类型==(((5 <<&((1 << 3)-1))+((((2)-1)<< 3))| | |类型==((((6)&((1 << 3)-1))+((((2)-1)<< 3))))

中止(核心已弃用)

最佳答案

https://github.com/opencv/opencv/blob/master/modules/core/src/matmul.dispatch.cpp#L337



根据消息来源,似乎代码期望浮点数,

CV_Assert_N( type == B.type(), (type == CV_32FC1 || type == CV_64FC1 || type == CV_32FC2 || type == CV_64FC2) );



尝试使用 Mat_<float>(为我工作)

关于c++ - OpenCV简单2D矩阵乘法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58438557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com