I am writing a C++ Mex source file to perform matchingFeatures operation after extracting corner feature points. Please help me to convert index of matching features of 2 images (in vector<DMatch>) to mxArray .
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Here is my code-
#include "opencvmex.hpp"
using namespace cv;
void checkforInputs(int nrhs,const mxArray *prhs[])
{
if (nrhs != 2)
{
mexErrMsgTxt("Incorrect number of inputs. Function expects 2 inputs.");
}
if (!(mxIsUint8(prhs[0])&&mxIsUint8(prhs[0])))
{
mexErrMsgTxt("Input image must be uint8.");
}
}
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
checkforInputs(nrhs, prhs);// check wheteher inputs are correct.
cv::Ptr<cv::Mat> description1 = ocvMxArrayToImage_uint8(prhs[0], true);
cv::Ptr<cv::Mat> description2 = ocvMxArrayToImage_uint8(prhs[1], true);
Ptr<DescriptorMatcher> matcher= cv::DescriptorMatcher::create("BruteForce-Hamming");// pointer to DescriptorMatcher object
std::vector<DMatch> matches;
matcher->match(*description2, *description1, matches);
// how to get indexes of matches in 2 images get converted to mxArray
}
1 Commento
James Tursa
il 22 Lug 2017
Modificato: James Tursa
il 22 Lug 2017
I am not familiar with OpenCV DMatch. Can you get at the field data directly? I.e., can you get at the distance, imgIdx, queryIdx, and trainIdx data directly?
Risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!