问题标签 [camera-projection]

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 回答
833 浏览

3d - Kinect v2,将 3D 点云投影到彩色图像中

我正在使用 Kinect V2 来捕获 3D 点云及其相应的彩色图像。为了将一些 3D 模型正确投影到这个彩色图像中,我需要计算从相机到图像空间的有效投影矩阵。由于 Kinect V2 SDK 没有关于 RGB 相机的校准信息,我发现有一种方法叫做坐标映射器类中的MapCameraPointsToColorSpace

此方法返回一个查找表,其中包含云中每个 3D 点与图像像素之间的对应关系。从表中,我试图计算 RGB 相机内在矩阵(焦距、主点、图像间距因子)。但是使用计算的内在矩阵投影的二维点与查找表中的值之间存在一些误差。我认为发生此错误是因为我没有计算径向失真。我对吗?我应该关心径向失真以通过此查找表获得 3D 到 2D 色点之间的精确映射吗?

0 投票
1 回答
906 浏览

3d - 如何在没有来自 Kinect Window SDK 的 Coordinatemapper 的情况下将 3D 骨骼关节映射回 2D 彩色图像

我想在不使用坐标映射器的情况下将 CameraSpace 中的 3D 骨架映射回 Kinect 中的 2D 彩色图像。我需要从深度相机转换为彩色相机吗?

在我看来,骨骼关节是从深度图像中获得的。因此,为了获得彩色图像中的关节位置,我应该通过以下 3 个步骤:

1)3D关节在深度相机3D空间,我需要转换到彩色相机3D空间(旋转/平移)。我不知道如何得到这个变换矩阵!

2)找到彩色相机内在参数(使用matlab校准工具箱)将3D映射回2D

3) 与失真系数相乘。

我在这里发现了一个类似的问题:How to convert points in depth space to color space in Kinect without using Kinect SDK functions? 然而,关于如何找出将深度相机映射到彩色相机的变换矩阵的问题没有得到解答。

编辑: 实施后,我认为 Color 2D 和 depth 2D 共享相同的 3D 相机空间(在某些方面,实际上深度和颜色是两个不同的相机——>它们应该有不同的 3D 相机空间)。因此,在没有坐标映射功能的情况下,我成功地将 3D 点映射为 2D 颜色(我使用了从 Matlab 工具箱中找到的投影矩阵)。3D 相机空间 -> 投影回 2D 像素颜色

一开始,我认为 3D 点在 3D 深度空间中,3D 深度和 3D 色彩空间是不同的。(输入:3D 深度空间中的 3D 点,输出:2D 彩色像素),我需要将 3D depthcamera ->3D colorcamera -> 投影回 2D 像素颜色)。但是,步骤3D depthcamera ->3D colorcamera不需要实现。

0 投票
1 回答
96 浏览

opencv - 图像中矢量与原点的交点与现实世界中的平面相交

我试图获得图像中方向矢量的交点(一个人正在看的方向),一个平面直接在前面并且实际上平行于图像平面。就像,这个人在看墙上的什么地方,这是我感兴趣的。

我知道相机的位置、图像中人的像素位置以及图像中头部的角度(偏航、俯仰、滚动)。我也可以合理地估计人到飞机的深度。

如何获得方向矢量与它前面的平面的交点?

0 投票
2 回答
343 浏览

javascript - 如何在three.js中操作截锥体

我看到了这种很棒的视差视图实现,它产生了深度错觉,我想在 Three.js 中构建类似的东西。

http://www.anxious-bored.com/blog/2018/2/25/theparallaxview-illusion-of-depth-by-3d-head-tracking-on-iphone-x

然而,似乎需要一个非对称的相机平截头体。这意味着相机的平截头体以某种方式固定在渲染对象上。

我的问题是,我如何在three.js 中实现这一点?是否可以操纵平截头体角或平截头体侧面?

在这里,您可以在我的相机上看到自上而下的视图。

直视对象

将相机向左移动后

0 投票
1 回答
1410 浏览

opencv - 图像子部分的翘曲透视变换不对齐

我想扭曲图像的子部分以将其投影到不均匀的表面上。最终,我想扭曲这里看到的图像有点像在这个项目中在HERE中完成的。

我的问题是当我将转换应用于图像的每个子部分时,事情只是没有对齐

这是我实现转换然后缝合的过程(将它们裁剪并粘贴到最终图像上。

  1. 获取所有点的列表
  2. 从一组 4 个点创建一个四边形感兴趣区域 (ROI)
  3. 这 4 个点用于将图像与相应的原始 4 个点进行变换。这是使用我的名为 perspective_transform() 的函数完成的

    一个。我取了 2 组 4 点并将它们传递给 M = cv2.getPerspectiveTransform(corners, newCorners)

    湾。然后我调用: warped = cv2.warpPerspective(roi, M, (width, height))

  4. 在获得新的扭曲图像后,我使用蒙版根据相关的 ROI 将所有内容拼接在一起:

    一个。这是由函数 quadr_croped() 完成的

    初始化屏幕以从屏幕获取原始像素,将其保存到 Numpy 数组

    第三:使用2组4个点来扭曲图像的透视

    def perspective_transform(图像,投资回报率,角,新角,i = -1):

    第二:将四边形剪切并粘贴到主图像中

    def quadr_croped (mainImg,image, pts, i): #例子

    第一:启动功能

    def draw_quadr(img1):

    /li>

图片结果链接

请看这些,因为它们很好地显示了问题。

无失真的原始图像 无失真的原始图像


此图像与中心有一个左偏移(没有 y 方向移动)

x方向畸变图像的结果 x方向畸变图像的结果


此图像从中心向上偏移(没有 x 方向移动)

y方向畸变图像的结果 y方向畸变图像的结果


此图像从中心向上和向左偏移

x 和 y 方向失真图像的结果 x 和 y 方向失真图像的结果


我是计算机视觉和 stackoverflow 的新手,我希望我已经包含了所有内容来帮助描述问题,如果您需要知道其他任何帮助,请告诉我

0 投票
0 回答
335 浏览

opencv - 使用 OpenCV 的相机投影的缩放因子

根据此文档:http ://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html

在此处输入图像描述

在此处输入图像描述

我得到了 m'、A 和 [R|t]。然后我想找到M'。但我不知道找到 s 值,这是一个比例因子。我只能使用尺子测量从相机到目标物体的距离。

请告诉我如何使用深度信息找到 s 值。