问题标签 [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.
c++ - 累积单应性错误缩放
我要建立一个由朝下的相机覆盖的地面全景图像(在固定高度,离地面约 1 米)。这可能会运行到数千帧,因此 Stitcher 类的内置panorama
方法并不真正适合 - 它太慢而且内存占用很大。
相反,我假设地板和运动是平面的(这里不是不合理的),并试图在我看到每一帧时建立一个累积的单应性。也就是说,对于每一帧,我计算从前一帧到新一帧的单应性。然后,我通过将其与所有先前单应性的乘积相乘来获得累积单应性。
假设我H01
在第 0 帧和第 1 帧之间,然后H12
在第 1 帧和第 2 帧之间。为了将第 2 帧放置到马赛克上,我需要得到H01*H12
. 随着帧数的增加,这种情况继续下去,这样我就得到了H01*H12*H23*H34*H45*...
.
在代码中,这类似于:
它工作得很好,除了随着相机在视点中“向上”移动,单应性比例减小。随着它向下移动,比例再次增加。这给了我的全景图一种我真的不想要的透视效果。
例如,这是在向前移动几秒钟的视频上拍摄的,然后向后移动。第一帧看起来不错:
当我们向前推进几帧时,问题就来了:
然后当我们再次返回时,您可以看到框架再次变大:
我不知道这是从哪里来的。
我正在使用 Farneback 密集光流来计算像素-像素对应关系,如下所示(稀疏特征匹配在此数据上效果不佳)并且我检查了我的流向量 - 它们通常非常好,所以它不是跟踪问题。我还尝试切换输入的顺序以找到单应性(以防我混淆了帧号),但仍然没有更好。
我认为可能的另一件事是我在转换中包含的翻译,以确保我的全景在场景中居中:
但是在应用翻译之前检查了单应性中的值,我提到的缩放问题仍然存在。
任何提示都将不胜感激。我可以输入很多代码,但似乎无关紧要,如果缺少某些内容,请告诉我
更新
我尝试将*=
运算符切换为完全乘法并尝试反转单应性相乘的顺序,但没有运气。下面是我计算单应性的代码:
这是我用来从流程图中查找对应关系的函数:
opencv - 使用opencv进行图像拼接生成全景图
现在,我正在用opencv做实验,将几张图像拼接成一个全景图,但是这些照片是从不同角度拍摄的。现在我要做的是将所有图像投影到圆柱面上,然后使用 SIFT 匹配特征以获得变换矩阵。我该怎么做?是否有任何opencv接口可以做到这一点(将所有图像投影到圆柱面上,我不知道相机的任何参数)?
c# - Leadtools 图像重叠拼接
我们正在开发从相机获取组合图像的系统,该系统由步进电机移动以拍摄整个区域的照片。问题是当我们组合单独的帧时,由于步进电机离散化,边缘并不准确。所以我们想出了制作几乎没有重叠的帧的想法,这样我们就可以将它们相互重叠以获得没有空白的连续图像。我们正在使用 c# + LeadTools。所以我想知道 Lead Tools(或者其他一些 sdk)中是否有任何选项来检测两个图像上相等的区域,所以我们可以正确拼接它们?提前致谢。
python - 将大图像拼接在一起 - Python.exe 已停止工作
我正在使用 python 脚本将大图像(10000 x 10000 像素)连续拼接在一起。我可以一次将八幅图像中的前六幅拼接在一起,绝对没问题。但是,当我在这一点之外缝合更多图像时,我得到“Python.exe 已停止工作”。
下面的代码:
opengl - 点云融合/拼接
我的项目的目标是使用点云以 3D 360 度查看鞋子。
所以我拍了四张鞋子的照片,0 90 180 270(彩色图像和深度图)。
我将它们全部放在 3D 空间中,现在可以用鼠标转动视线。
但后来我被困住了。
如何将这四组单独的点云合二为一,如何将它们融合/缝合在一起以形成完整的鞋子?
这就是我要说的。
https://drive.google.com/file/d/0B9l2vBy21x6obEFBanVCUk1RYzA/edit?usp=sharing https://drive.google.com/file/d/0B9l2vBy21x6ockdDY1JhUEtCVVU/edit?usp=sharing
我认为主要问题是如何从多余的点中识别出有利点。
有什么想法或建议吗?
java - java cv -v 缝合 - 异常
我尝试使用 javacv 拼接图像。我得到一个例外,我无法解决它。
这是代码:
这是一个例外:
线程“主”java.lang.UnsatisfiedLinkError 中的异常:org.bytedeco.javacpp.opencv_stitching$Stitcher.stitch(Lorg/bytedeco/javacpp/opencv_core$MatVector;Lorg/bytedeco/javacpp/opencv_core$Mat;)我在 org.bytedeco .javacpp.opencv_stitching$Stitcher.stitch(本机方法)
当我调用缝合函数(stitcher.stitch(imgs, pano);)时出现异常。
我不知道我该如何处理。我的错误是什么?
谢谢
c++ - 未找到 OpenCV2 拼接头
我正在尝试openCV2的拼接模块。我正在关注这个例子https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/cpp/stitching.cpp?rev=6683
问题是,我似乎找不到标题“opencv2/stitching/stitcher.hpp”
我还尝试在 Ubuntu 上使用“定位”在我的系统上搜索此文件。但我找不到文件。
需要安装这个模块吗?我错过了什么吗?
image - 在大图像中查找小图像坐标
我有 2 张图片。一个是另一个的较小版本,并且在各个方面都被裁剪了。我需要在大图像中找到较小图像的确切位置。使用 OpenCV Homography 函数,只有两个图像具有相同的比例,我才设法实现它:http:
//docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html#feature-homography
对于不同比例的图像,我想我需要缩小大图像以匹配较小的图像,但我怎样才能找到比例因子?
opencv - OpenCV: Error trying to stitch images
I'm trying to create kind of a panorama using the Stitcher::stitch
function on OpenCV.
I take around 24 pictures to stitch them but the final result (Status = OK) is a 1x1 image (black pixel).
If I remove some of the images, it works OK but maybe I'm missing some parts of the image.
What am I doing bad? Thank you in advance.
Update:
I'm trying to add rois taking the 50% of every image. For the first image I take the right 50%. For the last, the left 50%, and for the rest I take 50% of left and 50% of right:
and my function is:
void processImage(vector imgs){
}
And my results (cout) are:
0 // (OK)
[1 x 1]
opencv - 拼接文档图像 - 使用 OpenCV 的 SURF
我目前正在尝试将文档的 4 张照片拼接在一起。我正在使用 OpenCV 2.9、SURF 提取器和描述符,粗麻布阈值为 2000(否则关键点太多)。我拒绝任何距离大于 (2*min_dist) 的匹配项,并使用 findHomography()(RANSAC 方法)和 warpPerspective() 合并图像。
这就是它目前的表现。 http://i.stack.imgur.com/aVWWu.jpg
为什么变换矩阵 findHomography() 正在计算似乎不准确?比赛对我来说相当不错:http: //i.stack.imgur.com/F8ZNc.jpg
任何想法如何改善结果?任何预处理,如二值化、去噪、自动对比等 pp. 根本没有影响,或者使情况变得更糟。