问题标签 [image-stitching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3829 浏览

c++ - Opencv图像拼接或全景

我正在 OpenCV(全景图)中进行图像拼接,但我有一个问题。

我不能使用 OpenCV 中的 Stitching 类,所以我必须只使用特征点和单应性来创建它。

在这里我获得了匹配中的特征点,但我需要对其进行过滤:

现在,我计算单应性

最后,获取变换矩阵并应用warpPerspective得到两个图像的连接,但我的问题是在最终图像中,照片周围出现黑色区域​​,当我再次循环时,最终图像将难以辨认。

任何人都知道我怎样才能消除这个黑色区域?是不是我做的不好?任何人都知道我可以看到比较它的功能代码?

谢谢你的时间

编辑:

那是我的形象:

在此处输入图像描述

我想消除黑色部分。

0 投票
2 回答
5308 浏览

matlab - 在matlab中拼接图像时如何正确混合?

我正在尝试在 matlab 中缝合图像,但得到难看的重叠线。如何正确混合图像?目前我正在使用下面的代码,但它混合了太多(特别是建筑窗户与鬼影混合,黑色建筑也是如此)。

未混合图像 混合图像

0 投票
1 回答
114 浏览

linear-programming - 如何使用 LPSolve 拼接 2D 图像马赛克

我是 LPSolve 和工具包的新手。我正在尝试使用 LPSolve IDE 拼接 4 个图像 1024x1024 瓷砖。为了简化任务,我只使用瓷砖的 x 坐标。

如果我按以下方式定义关系

LPsolve 产生正确的结果

如果我将模型更改为以下,即将 Tile4 移动一个像素

LPSolve 以“模型不可行”响应,而我认为响应应该是

我究竟做错了什么?

0 投票
0 回答
448 浏览

opencv - opencv水平缝合

我正在尝试用opencv拼接两个图像。我在两张图片上都找到了这些特征并尝试匹配它们,但它们的匹配度不是很好。如果我知道图像已经水平对齐,我可以在匹配算法中做任何改进吗?

我正在使用:SurfFeatureDetector SurfFeatureExtractor 和 FlannBasedMatcher

谢谢

0 投票
0 回答
5234 浏览

android - 用Android相机进行全景拼接源码

我正在尝试通过拼接一组位图来创建全景图像。对于这个任务,我使用了来自 android stock camera 的源代码,它有一组全景(马赛克)类。此代码可以在许多存储库中找到,但无论如何这里是官方的:

https://android.googlesource.com/platform/packages/apps/Camera2/+/android-4.4.3_r1

对于熟悉库存 android 相机的用户,全景选项通过平移/移动相机来工作,该相机会自动捕获帧以供以后处理。在我的情况下,我需要实际缝合静止位图并且没有相机帧。

所以我创建了一个函数来接受基于股票相机方法的位图:

接下来我推送位图而不是相机帧的方法:

为了生成全景图,我做了下一个工作流程,同样基于 android 源代码:

我面临的问题是,通过跟踪我可以看到测试位图被接受,它们通过验证,并且全景图被缝合。但是返回的最终输出图像都混在一起了。结果是一个包含 3 个测试图像的部分/部分的单个图像帧,以及不正确的对齐和混合。

0 投票
1 回答
289 浏览

python - 从 html 将图像拼接在一起

这个网站有一张由 132 张图片组成的大图片,我想找到一种方法将它们拼接成一张图片。如果有人知道从哪里开始,我知道一些 python。

http://www.mapytatr.net/PRODUKTY/MAPY_TAT/WYSOKIE/SLICES/wys_ii.htm

谢谢!马特

0 投票
0 回答
903 浏览

c# - Emgu CV 将两个不同大小的图像拼接在一起

我有两张想拼接在一起的图像。图像有两种不同的尺寸(一个是主图像,另一个是小图例)。我目前正在做:

但是,我ArgumentException在注释行中得到一个。当我查看查看详细信息部分时,它显示{"Requires more images"}. results数组中已经有 2 个图像。我有什么明显的遗漏吗?还是我误用/误解了Stitch课程?我看到的 API中没有任何问题。

0 投票
3 回答
29521 浏览

opencv - 使用 OpenCV (Python) 拼接多个图像

嗨,已经看过很多教程如何使用两张照片进行简单的图像拼接,这没问题。
但是,当我想从 4-6 张或更多图像中制作全景图时该怎么办?

我有接收图像文件列表的代码(图像按顺序从序列中的第一个图像到最后一个图像)。然后对于每个图像,我计算 SIFT 特征描述符。但是后来我被卡住了,对于两个图像,我会使用 FLANN kd-tree 设置一个匹配器并找到图像之间的匹配并计算 Homography。类似于本教程http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_feature_homography/py_feature_homography.html#py-feature-homography

但我没有在最后显示特征点之间的线条,而是使用此https://stackoverflow.com/a/20355545/622194函数从 2 张图像制作全景图。但是当我想将第三张和第四张图像添加到全景图时,我不确定该怎么做。

编辑:

从答案中,我尝试实现我的图像拼接脚本来计算图像序列中彼此相邻的图像之间的单应矩阵。所以如果我有 I1 I2 I3 和 I4 我现在有 H_12、H_23 和 H_34。然后我开始使用 H_12 缝合 I1 和 I2。然后我想找到累积单应性将 I3 拼接到当前全景图。我 fing H_13 = H_12*H_23 并将图像 3 缝合到当前全景图,但在这里我的全景图像中有非常明显的间隙,当缝合下一张图像时,间隙更大,图像非常拉伸。

谁能告诉我我是否为此使用了正确的方法,或者有人可以发现错误或查看我做错了什么。

0 投票
1 回答
3333 浏览

matlab - 图像拼接的捆绑调整

我正在使用 matlab 制作简单的图像拼接脚本。我现在有接受有序图像序列的代码(I0 I1 I2 I3 ...)。对于每个图像,我提取 SIFT 描述符并在每个图像对之间匹配它们。(查找 I0-I1 然后 I1-I2 之间的匹配...)。我使用 ransac 来找出内点并在每对之间拟合一个 Homography。(H01=>I0-I1)。然后我将图像拼接在一起,I0 与 I1 然后 (I0I1) 与 I2 等等。(我猜是基本全景制作)。

但是,现在我想尝试实施捆绑调整来纠正整个图像中的投影误差。我在 Szeliski 计算机视觉一书中读到了一些关于束调整的内容(但我发现它更多地是关于 3D 重建中的 BA,我不确定如何在 2D 图像拼接中使用它)。然后我也看了这篇论文

我不知道从哪里开始,论文使用了更复杂的拼接,所有关于相机模型的讨论都有些混乱,因为我无法将这些讨论与我的简单应用程序联系起来。有人可以帮我开始吗?或者向我指出一些更合适的材料,在简单的全景制作中应用捆绑调整?我需要做的伪代码也有帮助。

0 投票
0 回答
1384 浏览

c++ - 拼接来自 2 个相对于彼此静止的重叠相机的图像

我是 CV 的新手,并试图将两台摄像机的视频拼接在一起,这两台摄像机相对于另一台是静止的。细节:

相机并排放置,我可以调整它们之间的旋转角度。摄像机将相对于世界移动,因此场景将发生变化。

要拼接的帧数大约是 300 帧(每帧由两张图片组成,每个相机一张)。

我不需要实时拼接,但我想利用我知道相机的相对位置这一事实尽可能快地完成拼接。每张图片的分辨率都比较高,900x600左右。

现在我正处于我有代码缝合 2 张单张图片的阶段,由http://ramsrigoutham.com/2012/11/22/panorama-image-stitching-in-opencv/提供

主要阶段是:

使用 SURF 检测器在两个图像中找到与 SURF 描述符匹配的 SURF 描述符 使用 FLANN 匹配器 后处理匹配以找到良好的匹配 使用 RANSAC 使用匹配的 SURF 描述符估计单应矩阵 基于单应矩阵扭曲图像 我的问题是:我该如何根据我已经知道相机位置的事实优化流程?

理想情况下,我想做一些初始计算以找到相机视角之间的转换,然后重用它。但我不确定我的基本简历知识是否确实可行,如果可以,我可以使用什么转换。

我知道计算一次单应矩阵并重用它是行不通的,因为场景正在改变。

另外两种可能:

  1. 我发现了一个类似的案例(但固定场景),其中变换计算一次并重用。这是哪个转换,它可以在我的情况下工作吗?

  2. 我发现的另一种可能是使用初始知识找到两张图片之间的重叠区域,而忽略其余图片以节省时间。相关线程

任何帮助将不胜感激!罗恩