gpt4 book ai didi

c++ - 如何将 Mat H=findHomography 返回给 Matlab

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:58 24 4
gpt4 key购买 nike

我尝试使用 OpenCV 函数 findHomography。我使用 Mex OpenCV。我的问题是如何将 Mat H 数组返回给 MATLAB。我希望有人能帮助我 :-)

示例代码是:

enter code here

#include "opencvmex.hpp"
#include "math.h"
#include "mex.h"
#include "matrix.h"

using namespace std;
using namespace cv;

void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[]){


//create "CV_32FC2" Array
Mat srcPoints(4,1,CV_32FC2);

srcPoints.at<int>(0)=221;
srcPoints.at<int>(1)=227;
srcPoints.at<int>(2)=237;
srcPoints.at<int>(3)=255;

Mat dstPoints(4,1,CV_32FC2);

dstPoints.at<int>(0)=120;
dstPoints.at<int>(1)=67;
dstPoints.at<int>(2)=91;
dstPoints.at<int>(3)=113;


// findHomography

Mat H;

int method=0;
double ransacReprojThreshold=3;
int maxIters = 2000;
double confidence = 0.995;

H = findHomography(srcPoints,dstPoints);
}

最佳答案

您可以使用 ocvMxArrayFromMat_{DataType} ,在你的情况下最好使用:

plhs[0]=ocvMxArrayFromMat_double(H);

Here is the documentation OpenCV 接口(interface),因此您可以查看可用的函数。

关于c++ - 如何将 Mat H=findHomography 返回给 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105085/

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