问题标签 [3d-reconstruction]
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.
mesh - 从 3D 三角形网格重建表面
我有一个 3D 模型,它由 3D 三角形网格组成。我想将网格划分为不同的组。每组代表一个表面,例如平面、圆柱表面。这类似于表面识别/重建。
输入是一组 3D 三角形网格。输出是每个表面的网格分割。
有没有符合我要求的图书馆?
matlab - 从 2D 重建相机坐标系中的 3D 坐标 - 具有侧面条件的像素
我正在尝试使用侧面条件(在 MatLab 中)从相机图片中的 2D 像素坐标重建 3D 坐标。我确实有外在和内在的相机参数。
使用齐次变换,我可以将 3D 坐标从初始世界坐标系转换为我的相机坐标系。所以在这里我的变换矩阵 R_world_to_Camera 中有我的外部参数:
对于内在参数,我使用了加州理工学院的“用于 MatLab 的相机校准工具箱”并获得了这些参数:
所以我得到了Camera-Calibration-Matrix K (3x3)
并使用它我可以计算 3D -> 2D - Projection-Matrix P (3x4):
当转换世界坐标 [X, Y, Z]_World 中的点时,我首先将其转换为相机坐标,然后将其投影为 2D:
所以我现在的问题是如何扭转这些步骤?作为附带条件,我想将 Z 坐标设置为已知(世界坐标为零)。我在 Stackoverflow 上尝试了这里提出的解决方案,但不知何故我得到了错误的坐标。任何的想法?非常感谢每一个帮助!
c++ - 开放式简历;C++; 从线性三角剖分法的矩阵中提取点云点(x,y,z)
我正在尝试在 xna 中重建 3D 对象。我需要点云点。我在未校准的图像序列下实现了这个概念,用于 3d 重建。我现在坚持使用线性三角测量。结果,我对矩阵有价值。我下一步要获取(x,y,z)点列表以绘制网格。
c# - 使用 C++ 代码的 Visual C# 中的 Pinvoke 问题
我正在尝试编写reconstructMe SDK的“一分钟”示例,但是我认为他们的SDK是用c ++编写的,我按照他们的页面(此处)的指示成功创建了一个控制台应用程序,但我想创建一个简单的用户界面,但是我对 Visual c++ 不是很熟悉(我确实对 c++ 有所了解),所以我尝试了他们的 C# 示例(我对他们的 UI 设计非常熟悉)但是在使用提供的 C# 代码时出现此错误(这里):
调用 PInvoke 函数 'Lala!Lala.Reme::reme_context_compile' 使堆栈失衡。这可能是因为托管 PInvoke 签名与非托管目标签名不匹配。检查 PInvoke 签名的调用约定和参数是否与目标非托管签名匹配。
我认为是配置项目或类似的问题。
3d - 从校准的相机图像进行 3D 重建
我正在研究 3d 重建。现在当我考虑一对图像时。我有一组对应的点。我有我的相机详细信息。例如我有焦点细节,旋转和平移矩阵(4 * 4)。我想以 3D(三角测量)投影我的观点。因此,据我所知,它通过因子代数非常简单。但我还是要理解清楚。有谁知道如何遵循这个?我正在使用matlab,所以我需要实现它!我可能又太宽泛了或其他什么。但是请指导我!
image-processing - 计算机视觉中的平滑度约束
我从阴影中读了一本Shape的书,我遇到了“ Smoothness Constraint ”的方程。我有点不明白这个等式的含义。任何人都可以帮我解释一下吗?非常感谢您花时间阅读我的问题。
我想上传这个方程的图片,但不幸的是,我是新成员,所以我不能上传图片,我不知道如何在这里写数学公式。
image-processing - 3D人脸重建算法
项目:3D人脸重建
输入:2D正面人脸图像输出:3D人脸重建与表情模拟平台:Matlab或Opencv cpp。
经过研究,我发现 3D Morphable Models (3DMM) 算法是我项目的一个很好的起点。但我没有巴塞尔人脸模型(3D 人脸数据库)来实现该算法。但是,我已经从http://gavab.escet.urjc.es/recursos_en.html下载了 GavabDB 。我可以使用 GavabDB 开发 3DMM 来从正面图像进行 3D 人脸重建吗?阅读数据集描述文档后,我观察到 Gavab 不提供 3D 扫描的纹理数据;纹理数据是强制性的吗?
输出质量是否取决于用于建模的 3D 数据库?
image-processing - 检索从扭曲图像中获取的像素的原始坐标
我从sourceImage中提取了四个角:
这四个角像这样扭曲到destinationImage:
现在我的问题是:
我有一个取自destinationImage的点p(x,y)如何在原始sourceImage 中检索该点的坐标
换句话说,我想使用 warpPerspectiveMatrix 来做 getPerspectiveTransform 的相反工作
algorithm - Phong 反射模型参数
问题:任何人都可以向我介绍为网络摄像头拍摄的面部图像的 Phong 反射模型参数吗?
细节:
我正在使用 3D Morphable Model 对 2D 图像进行 3D 重建,如本文Vetter & Blanz, 2003中所述。
有一个成本函数需要使用牛顿法进行优化。我需要为 Newton 方法提供初始化值。
下面的等式是图像的 phong 反射模型。显示了环境、漫反射和镜面反射分量。
Phong 参数:Ks、Kd、Ka、α、Lm、V
我正在使用牛顿法估计上述参数。图像是人脸,摄像头是网络摄像头。
我给出了以下值: Ks = Kd = Ka = 0.6 α = 5 Lm = [0 1 1] V = [0 0 1]
任何人都可以评论上述值以及参数的良好初始化值是什么?
image-processing - 为什么opencv立体对应中对象边界不清晰
我得到了 2 张几乎平行的照片,而且彼此之间的距离并不远。
我正在使用 OpenCV 尝试创建视差图(立体对应)。
因为我试图在现实世界的场景中使用它,所以使用棋盘校准有点不切实际。
因此,我正在使用stereoRectifyUncalibrated()。
我尝试比较结果,使用 2 组不同的对应点进行整改:
- 手动选择点(指向和单击)
- 从 SURF 生成并使用 RANSAC 过滤的点
输入图像1:http:
//i.stack.imgur.com/2TCi3.jpg
输入图像2:http:
//i.stack.imgur.com/j1fFA.jpg
(请注意,在将图像用于校正等之前,我会对图像进行不失真处理)
使用 SURF 和 RANSAC 校正图像:(
按顺序排列 1 和 2):http :
//i.stack.imgur.com/pwbUw.jpg http://i.stack.imgur.com/mb7TM.jpg
使用手动选择的点校正图像(更不准确!):http:
//i.stack.imgur.com/Bodeg.jpg
现在,问题是,查看结果,我们看到 surf 版本几乎完全纠正了。(极线对齐得很好)。
虽然手动选择的点版本被纠正得很糟糕......极线远未对齐。
但是当我们使用我们的校正来查看 openCV 的 sgBM() 的结果时:
手动点结果
:http:
//i.stack.imgur.com/N8Cyp.png
SURF 点结果:
http://i.stack.imgur。 com/tGsCN.jpg
SURF 点显示的视差/深度更准确/正确(校正良好的版本)。那里并不奇怪。
然而,实际检测到的对象像素和对象边界实际上在严重纠正的版本上要好得多。
例如,在校正不好的视差图中,您可以看到笔实际上是笔,并且具有笔的形状,但在校正好的视差图中却没有。
问题是,为什么?
我该如何解决?(我试着玩弄 sgBM() 参数,确保它们对于两者等都是相同的,但它没有任何效果。正是由于某种原因,单独的不同校正使严重校正的图像看起来不错(尊重到对象边界))。