问题标签 [opencv-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.
c++ - 如何实时拼接来自摄像机的图像?
我使用 4 个固定相机。相机不会相对于彼此移动。我想将它们中的视频图像实时拼接成一个视频图像。
我用于这个 OpenCV 2.4.10 和cv:stitcher
类,如下所示:
我只有 10 FPS(每秒帧数),但我需要 25 FPS。我怎样才能加速这个例子?
当我使用stitcher.setWarper(new cv::PlaneWarperGpu());
然后我得到一个非常放大的图像,我不需要这个。
我只需要 - 翻译。
例如,我准备不使用:
- 透视变换
- 规模经营
- 甚至可能是 Rotations
我该怎么做?或者我如何从每个图像的翻译cv::Stitcher stitcher
参数中获取?x,y
更新 - 在 Windows 7 x64 上的 MSVS 2013 中进行分析:
c++ - OpenCV Stitcher 库正在输出压缩图像
我正在开发一个程序,将来自无人机的图像拼接在一起,我似乎无法获得任何可以在网上找到的拼接方法。最值得注意的是 openCV 具有的简单 Stitcher 类。这些是我的两个输入图像是最后两个,结果是第一个图像
所以显然这是不对的,但我不知道我哪里出错了,因为这只是对缝合器的简单调用。
c++ - 两个不同图像中同一点之间的距离不一致 - OpenCV/C++
所以我有两张热图像(我知道马铃薯质量,但这是我必须使用的),这张专辑中的前两张。我正在使用教程中的一些代码,这些代码非常常见,但已经编辑了很多。
所以我在我的代码中所做的是
现在我的问题是:对于每组点,两个不同图像上两个相同点之间的 (x,y) 距离的变化是否应该相同?
整个框架都在同一个方向移动,所以无论我们看什么匹配点变化都应该是一样的,不是吗?
我发现距离上的点都不同,有些是 5 像素不同,有些是 700 像素,我唯一能想到的事情是匹配实际上并不好,它正在比较两个不匹配的点在不同帧中的同一点附近。
我需要知道偏移量是多少,以便我可以将一帧叠加在另一帧之上,然后平均重叠的像素值并从两个原件的合成/平均值构建新图像。
我正在使用的代码如下:
编辑:
我在 BFMatcher 中将 Cross Check 设置为 true,并从 Mastering_OpenCV 实现了 Homography 异常值检测。这是两个新的结果。我不确定我是否应该同时实施交叉检查和 KnnMatch,所以我只做了交叉检查。
如您所见,它们要好得多,但仍有一些不应该存在。我用全彩色和热图像运行它。新代码也在上面。
ios - 为什么openCV图像拼接适用于项目中加载的图像而不是动态加载的图像
我有一个使用 openCV 拼接图像的应用程序,并将图像保存到我的相机胶卷和文件系统中的某个位置。当我将文件系统中的这些图像作为文件系统中的 UIImages 数组传递时,拼接方法不起作用。但是,当我从相机胶卷中获取图像并将它们下载到我的计算机并通过复制捆绑资源部分将它们加载到我的项目中时,拼接算法可以轻松拼接我放置的任何图像。
有没有可能发生这种情况的原因,我该如何解决?
在我的项目中,我在 CVViewController 中加载图像数组并将图像存储在 CameraViewController 中。
opencv - Imshow() 在stitching_detailed.cpp opencv 中不起作用
我imshow("result",result)
在 opencv 源文件中的 opencv 示例(stitching_detailed.cpp)的末尾添加了,但它不显示图像。如果我将其保存为 .jpg 然后使用 imread 重新打开它会正常工作。有人知道为什么吗?此代码将文件保存在 result.jpg 但不显示图像!!奇怪的!
imwrite("result.jpg", result);
namedWindow("resultwindow", WINDOW_AUTOSIZE);
imshow("resultwindow", result);
waitKey(0);
下面的代码将显示图像,但时间对我来说很重要我不想保存文件然后阅读它(我的项目是实时拼接)
这真的很奇怪。试试看 。你会看到,请任何人帮助我哪里错了?!如何在stitching_Detailed.cpp 中显示拼接图像?
opencv - OpenCV findHomography 和 WarpPerspective 没有产生好的结果
我正在尝试使用FindHomography
查找两个相机之间的扭曲矩阵,然后使用warpPerspective
. 但是,要变形的图像会过度延伸并翻转到屏幕的另一侧。下面是一些简化的代码来显示奇怪的行为:
我的输出是:
坐标是黑盒子的:
由于负坐标,您可以在这里看到它异常扭曲:
我一直在花费数小时试图追踪问题。写入方向的任何帮助/指针都将非常有帮助。谢谢
如何拼接左图? 如果我将三个图像拼接在一起,最好的方法是什么?所以我在尝试左边和中间,下面是我的结果但是很弱:
opencv - OpenCV MultiBandBlender 不起作用
我尝试使用 MultiBandBlender 将我的图像混合到全景中,但它返回黑色全景。但 FeatherBlender 工作正常。我做错了什么?
c++ - OpenCV 通过扭曲两者来拼接图像
我已经找到了很多关于使用 OpenCV 进行图像拼接和变形的问题和答案,但我仍然找不到我的问题的答案。
我有两个成功校准的鱼眼相机,因此两张图像中的失真都被消除了。
现在我想将这些校正后的图像拼接在一起。所以我非常关注这个例子,在很多其他拼接问题中也提到了这个例子: 图像拼接示例
所以我做了关键点和描述符检测。我找到匹配项并获得 Homography 矩阵,因此我可以扭曲其中一个图像,从而得到一个真正拉伸的图像。另一个图像保持不变。拉伸是我想避免的。所以我在这里找到了一个不错的解决方案: 拉伸解决方案。
在幻灯片 7 上,您可以看到两个图像都发生了扭曲。我认为这将减少一张图像的拉伸(在我看来,拉伸将被分开,例如 50:50)。如果我错了,请告诉我。
我遇到的问题是我不知道如何扭曲两个图像以使其适合。我必须计算两个同位词吗?我是否必须定义像 Rect() 之类的参考平面?如何获得幻灯片 7 所示的翘曲结果?
明确地说,我不在德累斯顿工业大学学习,所以这只是我在做研究时发现的。
opencv - 在opencv中使用warpPerspective拼接图像周围的黑线
我试图从视频中构建马赛克全景图。我将每一帧都拼接在一起,但最终图像中存在问题。我将findHomography用于平移矩阵、遮罩、warpPerspective并将新的扭曲图像复制到最终图像全景中。
我认为这是 warpPerspective 的问题。有人知道如何解决这些黑线吗?
这些黑色垂直线是拼接图像的角。如何去除它们?
opencv - 运行 cpp-example-stitching_detailed 时出错
我已经安装了 OpenCV-3.0.0 并配置了 BUILD_EXTRA_MODULES 以启用对 SIFT 和 SURF 算法的访问。我想在两个简单地相互旋转一点点的 jpeg 图像上运行拼接示例。这些图像是我自己的,而不是任何标准图像(我在哪里可以找到这些标准拼接示例图像,如果有的话?)然后我继续执行
我收到以下错误:
当我尝试更简单并执行简单的 ./cpp-example-stitching 可执行文件时,如下所示:
那么输出错误是
如果它有任何用途,以下是运行 opencv_test_stitching 和 opencv_perf_stitching 的结果
这是运行 opencv_perf_stitching 的更长输出: