2013-02-04 91 views
2

我目前正试图在Eclipse中实现基本图像拼接C++(OpenCV)代码。特征检测部分为SURF特征显示了很好的结果。但是,当我试图将这两个图像扭曲在一起时,我只得到一半图像作为输出。我试图找到一个解决方案,但无济于事。我甚至试图抵消单应矩阵,就像在这个答案OpenCV warpperspective中一样。目前为止没有任何帮助。OpenCV WarpPerspective问题

因为我没有足够的声望点,所以我会在注释中附加输出图像。

为特征检测和单应,我用确切的代码从这里 http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html

然后,我添加了下面的一段给定的代码之后的代码,

Mat result; 
warpPerspective(img_object,result,H, Size(2*img_object.cols,img_object.rows)); 
Mat half(result,Rect(0,0,img_scene.cols,img_scene.rows)); 
img_scene.copyTo(half); 

imshow("Warped Image", result); 

我在很新这只是试图把碎片放在一起。所以我很抱歉,如果有一些基本的错误。

+0

特征检测:http://i.stack.imgur.com/7UjVJ.jpg 输出:HTTP://i.stack.imgur。 com/Fe392.jpg – hriddle

回答

0

我发现了一个相关的问题在这里Stitching 2 images in opencv和实施给予额外的代码。有效!

作为参考,已编辑的代码我写的是

Mat result; 
warpPerspective(img_scene, result, H, Size(img_scene.cols*2, img_scene.rows*2), INTER_CUBIC); 
Mat final(Size(img_scene.cols + img_object.cols, img_scene.rows*2),CV_8UC3); 
Mat roi1(final, Rect(0, 0, img_object.cols, img_object.rows)); 
Mat roi2(final, Rect(0, 0, result.cols, result.rows)); 
result.copyTo(roi2); 
img_object.copyTo(roi1); 
+0

您已将您的答案标记为已接受。它可能会帮助其他人。 – hasanghaforian