Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用opencv将两个张量相乘?_C++_Opencv - Fatal编程技术网

C++ 如何使用opencv将两个张量相乘?

C++ 如何使用opencv将两个张量相乘?,c++,opencv,C++,Opencv,假设我有一个imageim和一个3x3转换矩阵,图像是HxWx3,我需要做如下乘法: Mat M = Mat::ones(3, 3, CV_64FC1); M.at<double>(1,1) = 4.0; Mat res = im * M; Mat M=Mat::one(3,3,CV_64FC1); M.at(1,1)=4.0; Mat res=im*M; 我需要的乘法类似于numpy的python包的np.matmul方法。我该怎么做呢?你的im是3个频道,而你的M是1个频道。

假设我有一个image
im
和一个3x3转换矩阵,图像是HxWx3,我需要做如下乘法:

Mat M = Mat::ones(3, 3, CV_64FC1);
M.at<double>(1,1) = 4.0;
Mat res = im * M;
Mat M=Mat::one(3,3,CV_64FC1);
M.at(1,1)=4.0;
Mat res=im*M;

我需要的乘法类似于
numpy
的python包的
np.matmul
方法。我该怎么做呢?

你的
im
是3个频道,而你的
M
是1个频道。您的
im
的宽度和高度是多少?你已经检查过了吗?我确实认为单通道是个问题,因为
M
是一个3x3矩阵。我的图像是1024x2048x3矩阵,它应该输出一个1024x2048x3矩阵作为结果。所以你的im是1024x2048,你想把它乘以3x3吗?可能吗?通过使用?是的,我认为是这样,如果输入是1024x2048x3和3x4,那么
np.matmul
可以给我一个1024x2048x4的结果。您的
im
是3个通道,而
M
是1个通道。您的
im
的宽度和高度是多少?你已经检查过了吗?我确实认为单通道是个问题,因为
M
是一个3x3矩阵。我的图像是1024x2048x3矩阵,它应该输出一个1024x2048x3矩阵作为结果。所以你的im是1024x2048,你想把它乘以3x3吗?可能吗?通过使用?是的,我认为是这样,如果输入是1024x2048x3和3x4,那么
np.matmul
可以给我一个1024x2048x4的结果。