OpenCV: Drawing matches in top and bottom configuration?
computer-vision, feature-detection, image-processing, opencv
Solution
I am afraid you have to write your own function. I think it should not be too complicated.
As a starting point just have a look at https://github.com/Itseez/opencv/blob/2.4/modules/features2d/src/draw.cpp where we have the function `_prepareImgAndDrawKeypoints`
static void _prepareImgAndDrawKeypoints( const Mat& img1, const vector<KeyPoint>& keypoints1,
const Mat& img2, const vector<KeyPoint>& keypoints2,
Mat& outImg, Mat& outImg1, Mat& outImg2,
const Scalar& singlePointColor, int flags )
{
Size size( img1.cols + img2.cols, MAX(img1.rows, img2.rows) );
for example size should be changed to
Size size( MAX(img1.cols + img2.cols), img1.rows + img2.rows );
and then you can continue to study that function (and the other ones) and complete your task. Maybe you can also contribute to OpenCV too with your new feature.
Problem
I am trying to use `drawmatches` function in OpenCV. It put the image in `left and right` format. I want the images to be put in `top-down` format and then draw the matches for more clarity. Is there a way in which it can be done in OpenCV? Or, I will have to write a new function?