0
我对OpenCV相当陌生,并且对它有点理解。我知道cv::Mat
类中的矩阵运算符已经被重载,以执行A.mult(B),A + B,AB,A/B等。在OpenCV中从cv :: Mat对象中减去一个固定值
我有两个矢量,它们是行和列的投影图片。我有两个图像(S和T),因此每个图像都有两个投影向量(rowProjjctionS,columnProjectionS,rowProjectionT,columnProjectionT)。我也有图像的手段(meanS,meanT)。我需要做相关的计算“产品之和”,这在MATLAB是如下
numeratorLambdaRo = sum((rowProjectionT - meanT).*(rowProjectionS - meanS));
denominatorLambdaRo = sqrt(sum((rowProjectionT - meanT).^2)*sum((rowProjectionS - meanS).^2);
LambaRo = numeratorLambdaRo/denominatorLambdaRo;
我不完全肯定矩阵操作中cv::Mat
对象的上下文的能力。
@ Remi..Thanks的解决方案!我试图用我的MMU(通过使用cv :: isContinuous()函数)玩另一个游戏....如果我很幸运,那么内存分配应该是连续的,因此可以通过Mat ::数据指针提取数据。希望这是另一种解决方案。但因为你的解决方案不涉及指针,我个人讨厌指针(因为我是一个java开发人员的技能:P)嗨你好... – ha9u63ar
@Remi ...你的矩阵乘以*符号不会工作!它是否需要一些头文件来建议操作符重载? – ha9u63ar
检查矩阵尺寸。它可能是rowProjTSquare = rowProjT.t()* rowProjectionT。在一种情况下,你最终得到一个标量(1×1矩阵),在另一种情况下,一个(dxd)矩阵,其中d是你的向量的维数。 – remi