【问题标题】:OpenCV WarpPerspective issueOpenCV WarpPerspective 问题
【发布时间】:2013-01-19 00:12:08
【问题描述】:

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

我将在 cmets 中附加输出图像,因为我没有足够的声望点。

对于特征检测和单应性,我使用了这里的确切代码 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);

我在这方面还很陌生,只是想把各个部分放在一起。因此,如果有一些基本错误,我深表歉意。

【问题讨论】:

标签: c++ image image-processing opencv image-stitching


【解决方案1】:

如果你只是想把碎片拼在一起,你可以试试内置的 OpenCV 图像拼接器类:http://docs.opencv.org/modules/stitching/doc/high_level.html#stitcher

【讨论】:

  • 感谢您的链接。我实际上的意思是我想通过学习底层步骤将代码片段组合在一起。我只是想了解发生了什么问题,以便解决问题。
【解决方案2】:

我在这里找到了一个相关的问题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);

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2019-08-15
    • 2019-10-13
    相关资源
    最近更新 更多