C++ 如何使用opencv将两个张量相乘?
假设我有一个imageC++ 如何使用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个频道。
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的结果。