如何将 Mat H=findHomography return 发送到 Matlab
How to send Mat H=findHomography return to Matlab
我尝试使用 OpenCV 函数 findHomography。我使用 Mex OpenCV。我的问题是我如何 return Mat H Array to 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 接口,所以你可以看看可用的函数。
我尝试使用 OpenCV 函数 findHomography。我使用 Mex OpenCV。我的问题是我如何 return Mat H Array to 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 接口,所以你可以看看可用的函数。