问题标签 [camera-matrix]

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

python-3.x - 如何使用相机矩阵在图像中以毫米为单位查找点的位置?

我使用的是标准 640x480 网络摄像头。我已经在 Python 3 的 OpenCV 中完成了相机校准。这是我正在使用的代码。该代码正在运行,并成功为我提供了相机矩阵失真系数。现在,我如何才能在我的场景图像中找到 640 像素中有多少毫米。我已将网络摄像头水平安装在桌子上方,并在桌子上放置了机械臂。使用相机我正在寻找物体的质心。使用相机矩阵我的目标是将该对象的位置(例如 300x200 像素)转换为毫米单位,以便我可以将毫米分配给机械臂以拾取该对象。我已经搜索但没有找到任何相关信息。请告诉我是否有任何方程式或方法。非常感谢!

这是相机矩阵:

失真系数:

0 投票
0 回答
87 浏览

camera - 将一个盒子从世界投影到图像平面

我有一个带有外在参数和内在参数的校准相机,这样我就可以将世界上的可见点投射回图像。

但我需要能够处理相机无法看到的点。

  1. 我怎么知道相机是否可以看到一个点?当只处理一个点时,这将解决问题。
  2. 如何将可能仅部分可见的 3d 框(8 点)投影回图像?

我的知识有限,我不能为此使用 3rd 方框架,而是需要在 python/C 中实现它。

0 投票
0 回答
59 浏览

c++ - 像 Unity 中的 OpenGL“自由纵横比”

我使用 OpenGL 和 C++ 在 Visual Studio 中制作了自己的简单关卡编辑器,为安卓手机创建游戏。但是我偶然发现了一个问题,即我放入编辑器中的某些对象在 android 上没有正确显示,有时甚至没有出现。我一直在四处寻找,找不到解决方案。所以这是我的lLevel Editor的正交相机和屏幕分辨率:

相机对象正交矩阵:

它对于 android 也完全相同(使用 ndk)。

纵横比被注释掉了,因为我正在试验,如果不乘以纵横比,整个世界都会被拉伸。

现在到统一的自由纵横比,我有一种感觉,就像我的正射相机一样,没有乘以纵横比。那到底是什么,当我选择自由纵横比时,我放置在统一上的每个对象如何保持 1:1 并且它没有被拉伸或任何东西?如果有人可以向我解释这一点,那真的会对我有很大帮助。

还有一件事。我已经使用 opengl 在 android 上制作了几款游戏,但我特别将背景图像设置为精确的宽度和高度,因为我一直在乘以我的正交矩阵中的纵横比。但是这次我只想提取背景和对象的位置和大小,并让它们保持它们的外观而不拉伸不同的分辨率。

如果有任何其他通用解决方案,如果没有我想我应该在关卡编辑器上使用一些固定分辨率并为 android 使用相同的分辨率?

0 投票
0 回答
33 浏览

javascript - 从 xyzw 格式的相机矩阵中获取旋转

我在 JS 中有一个 4x4 矩阵,称为 world to obj。我从上下文中假设的这个矩阵必须是相机变换矩阵,因此我试图从中提取 xy 和 z 轴上的弧度的旋转。

我不知道从哪里开始并且尝试了很多事情

对于上下文,下面的图像是没有旋转的相机变换

在此处输入图像描述

第二个是旋转 1 弧度应用于每个轴。重要的是要注意,在这个例子中这个相机也在绕轨道运行

在此处输入图像描述

0 投票
0 回答
16 浏览

opencv - 图片中所有对象的相同相机矩阵

我在图片中有一个对象,我想为这张图片中的每个对象找到相机矩阵,但是对于所有对象,相机矩阵应该具有相同的大小,例如:CM 门 = CM 窗口 = CM 灯

我有 x,y 坐标和 X,Y,Z 真实世界坐标