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

标签 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 忽略图像的一部分?假设我想将两个图像拼接在一起,但我不希望它在图像中间计算出一个正方形。

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

这可行吗?

最佳答案

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

如果忽略区域是一个矩形,你可以根据忽略区域用2-4个矩形覆盖周围区域。

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

关于c++ - OpenCV:全景拼接 - 忽略图像的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18896182/

相关文章:

c++ - 为什么我的程序在 nVidia NView 下占用 100% CPU?

java - Arduino-处理双向通讯无法通过串行接收数据

iOS 核心数据迁移大问题

ios - 如何滑动删除表格单元格以在解析时更新?

c++ - openCV 和线程问题

ios - 为什么 Xcode 7 iOS 模拟器卡住?

python - 如何找到颜色 "Upper"和 "Lower"范围内的颜色?

python - 为什么 cvSet2D 接受一个 double 元组,为什么这个元组除第一个元素外全为 0?

opencv - 在 Windows Phone 8 应用程序中使用 OpenCV

c++ - 范围内的指针 const,外部非 const