OpenCV:全景拼接 - 忽略图像的一部分

时间:2013-09-19 13:36:51

标签: c++ ios opencv

我使用此代码将图像拼接在一起(我是OpenCV的新手):

cv::Mat stitch (vector<Mat>& images)
{
    imgs = images;
    Mat pano;
    Stitcher stitcher = Stitcher::createDefault(try_use_gpu);
    Stitcher::Status status = stitcher.stitch(imgs, pano);

    if (status != Stitcher::OK)
        {
        cout << "Can't stitch images, error code = " << int(status) << endl;
            //return 0;
        }
    return pano;
}

有没有办法让OpenCV忽略图像的一部分?假设我想将两幅图像拼接在一起,但我不希望它在图像中间计算一个正方形。

这样做的原因是我希望能够拍摄一个人的照片两次,然后将这两个图像合并/缝合成一个,但忽略该人。

可行吗?

1 个答案:

答案 0 :(得分:1)

一种效率不高的解决方案可能是指定要忽略的区域周围的图像部分。确保图像具有足够的重叠像素用于拼接。然后将所有这些图像发送到opencv缝合器。

如果忽略区域是矩形,则可以使用2-4个矩形覆盖周围区域,具体取决于忽略区域。

例如,下面的图片可能是全景图的一部分。您可以忽略黑色区域并将其他区域添加到拼接器的输入向量中。 ignore black rectangle and send others to stitcher