c++ - OpenCV 图像拼接 - 使用 ExposureCompensator 和 MultiabandBlender 类

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

我正在做一个全景拼接项目,我正在尝试实现 M. Brown 和 D. Lowe's Automatic Panoramic Image Stitching using Invariant Features通过调整和适应我的需要。我了解stitcher类中的OpenCV拼接方法是基于此。

我卡在了增益补偿和多波段混合部分。虽然我相当了解它背后的理论,但我对实现持怀疑态度。

OpenCV 有两个类,ExposureCompensatorMultibandBlender但我正在努力将它们用于代码中。

有人成功使用过这些类(class)吗?有什么好的例子吗?

当我在谷歌搜索时,我遇到了

  1. Balancing contrast and brightness between stitched images

这试图粗略地解释如何使用 ExposureCompesator,但没有解释输入是什么。具体来说,feed 方法的输入是 vector<Point>角落和Vector<Mat>面具。

a) 这些角是什么?这些是最终全景图中各个图像的左上角吗?还是别的?

b) 面具是什么?我应该如何创建它们?

  1. How to use Multi-band Blender in opencv

这试图解释如何使用 blender 类,但又错过了输入定义。什么是角和掩码?

这是我拼接的全景图,我正在尝试补偿曝光差异并将其混合。 enter image description here

最佳答案

查看 official tutorialStitching detailed (python opencv >4.0.1) 部分下。那里有 C++ 和 Python 的详细实现,其中还包括补偿和混合!

关于c++ - OpenCV 图像拼接 - 使用 ExposureCompensator 和 MultiabandBlender 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39048669/

相关文章:

c++ - 与 std::atomic 相反,读取互斥量范围之外的 volatile 变量

c++ 在另一个 std::string 中出现一个 std::string

python - 在不下载视频的情况下提取 youtube 视频的特定帧

image-processing - 如何在 Assembly 中转置图像?

c++ - 从具有非虚拟析构函数的容器继承

c++ - 堆分配的回溯统计信息——从哪里调用以及调用了多少次?

c - 在 OpenCV 中获取窗口的大小

python - 如何在 python 中用曲率拼接/弯曲/弯曲图像?

image - 使用 imwarp 时如何定义 'interp'

python - 在Python中的图像上大纲文本