问题标签 [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 回答
12209 浏览

c++ - 如何从相机矩阵中找到焦距?

我有用于计算相机矩阵和修复图像失真的 OpenCV 代码。

这是 OpenCV 和 C++ 中的部分代码。

我不确定如何使用此代码从相机矩阵中找到焦距。此代码应计算相机矩阵并从需要中找到焦距。但是有些我不确定这是获取相机矩阵然后是焦距的方法。相机矩阵 3x3 矩阵。但是这些参数是如何计算的呢?

有什么帮助吗?

0 投票
0 回答
287 浏览

opencv - CAHVORE 相机模型的不失真

我有一些带有鱼眼失真的图像及其相应的 CAVHORE 校准文件。我想让图像不失真,cv2.fisheye.undistortImage现在使用 OpenCV (即 ),这需要固有矩阵K和失真系数D

我一直在阅读有关相机型号及其转换的信息。K在没有径向畸变的情况下,构建似乎很容易(第 2.2.4 节),但是获得畸变系数D并求解KRCr并不简单。在实验上,我在没有径向失真假设的情况下使用图像,并K根据给定H_*V_*参数构建。结果不失真,但并不完美。

问题是,给定如下校准文件,是否有任何公式或近似值来获得失真系数?或者,有没有更简单的方法来使用 CAVHORE 参数不失真?

代码库,公式,指针,任何东西都值得赞赏,谢谢。

示例 CAVHORE 文件:

0 投票
1 回答
1612 浏览

opengl - 从相机矩阵获取投影和视图矩阵

我有 3*4 相机矩阵,它P = K[R | -RC]K内在相机矩阵,R是旋转矩阵,C是相机相对于世界原点的位置,-RC是平移。我可以分解PKRC我想如何使用此相机信息在 openGL 中进行渲染。K我应该如何使用, R, C;设置视图矩阵和投影矩阵 在openGL中,它代表实际的相机位置?

0 投票
1 回答
1698 浏览

python - Python校准相机

我有以下图像 I1。我没有捕捉到它。我从谷歌下载的

在此处输入图像描述

我将已知的单应性 H 应用于 I1 以获得以下图像 I2。

在此处输入图像描述

我想假设相机已经拍摄了 I2 的上面这张照片。我不知道这台相机的相机矩阵,我想找到它。为了找到这个相机矩阵mtx,我使用了OpenCV相机校准方法:ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None,flags=cv2.CALIB_FIX_ASPECT_RATIO|cv2.CALIB_FIX_K1|cv2.CALIB_FIX_K2|cv2.CALIB_FIX_K3|cv2.CALIB_FIX_K4|cv2.CALIB_FIX_K5)

这是使用正方形完成的,它是真实世界和图像坐标。我在图像 I1 中选择一个正方形,并使用单应性 H 得到 I2 中正方形的对应角点。由于我知道 I2 中的这些对应点形成一个正方形,所以我应该能够从这些点得到相机矩阵。但是,当我在图像的不同位置拍摄同一个正方形时,我会得到不同的相机矩阵。为什么是这样?我做错了什么,我该如何解决?如何计算正确的相机矩阵?

一个例子如下所示。对于这两个选择的方块,我mtxcalibrateCamera函数中得到不同的值。

在此处输入图像描述 在此处输入图像描述

注意:上图中的红点不是 I1 中完美正方形的角点。我只是粗略地标记了它们以传达我的观点,即当我取两个相同大小但在不同位置的正方形时,我会得到相机矩阵的不同值。

0 投票
1 回答
2385 浏览

python - 使用立体视觉计算物体到相机的距离

我一直在尝试计算一个物体和我的一个相机(相同型号)之间的距离。校准后,成功得到如下矩阵。分辨率为 600 x 480。

如果我可以从两个相机中检测到一个物体,让我们说在左相机的像素 (a, b) 和右相机的 (c, d) 中找到一个物体。有什么方法可以让我获得一台相机与物体之间的距离?

另外,我的脚本实现了 cv2.stereoRectify 和 cv2.initUndistortRectifyingMap,它们可用于获取固定帧,然后使用 cv2.StereoBM_create() 计算深度图。好吧,老实说,我不确定这是否可以用来计算距离。

谢谢!

0 投票
1 回答
141 浏览

c++ - 您是否使用 cv::calibrateCamera() 获得与使用 cv::fisheye::calibrate() 相同的相机矩阵结果

我正在做一个校准鱼眼相机的项目,主要问题是我想保存校准中获得的参数。

使用cv::calibrateCamera(),Camera Matrix 是一个cv::Mat使用cv::FileStorage我可以轻松读写的产品。使用cv::fisheye::calibrate()相机矩阵是一个cv::Matx33d,我不能使用它cv::FileStorage

我阅读了openCV文档,两种方法的参数相同,但我想知道你是否获得相同的结果,因为可能传递的参数是相同的,但方法内部的算法可能会改变。

谢谢

0 投票
1 回答
994 浏览

3d-reconstruction - 具有已知内在和外在矩阵的立体视觉 3d 点计算

我已经用两个相机的固有相机矩阵成功计算了旋转、平移。我还从左右摄像头获得了校正后的图像。现在,我想知道如何计算一个点的 3D 坐标,只是图像中的一个点。在这里,请看绿点。我看了一下方程,但它需要我不知道如何计算的基线。您能告诉我使用给定信息(R、T 和内在矩阵)计算绿点 3d 坐标的过程吗?

仅供参考 1. 我还有一个基本矩阵和基本矩阵,以防万一我们需要它们。2. 原始图像尺寸为 960 x 720。校正后的尺寸为 925 x 669 3. 左图的绿点:(562, 185),右图的绿点:(542, 185)

在此处输入图像描述

0 投票
0 回答
1188 浏览

python - 如何获取从 3D 世界渲染的 2D 图像的 x 和 y 坐标(针孔相机模型)

我是 3d 图形的新手。我一直在搅拌机中创建场景并渲染它们。知道物体和相机的世界位置,以及镜头的焦距,我想计算渲染的 540x480 图像中物体的 x1 和 x2(或 x 和 y)位置。我想将搅拌机的相机建模为针孔相机

我还想为场景中的许多图像和各种对象创建一个 python 脚本来为我执行此操作

谢谢!

我一直在谷歌搜索相机矩阵、3D 投影和相机模型。然而,虽然这些方程本身是有意义的,但我很难真正掌握它们的工作方式并将它们应用于我的问题。

我现在正在处理的一个非常简单的场景是一个相机指向一个立方体。我知道相机和立方体(它的中心)相对于相同世界坐标的位置,并且我知道相机的焦距。知道这些信息后,我如何解决相机渲染的照片中立方体的位置?

渲染图像

Camera : Vector((7.358891487121582, -6.925790786743164, 4.958309173583984)) Quaternion((0.7804827094078064, 0.483536034822464, 0.20870360732078552, 0.33687159419059753))

立方体:向量((0.0, 0.0, 0.0)) 四元数((1.0, 0.0, 0.0, 0.0))

我知道我需要将相机设为原点,因为我只需要做 x-x10、x-x20 和 x-x30(其中 x10、x20 和 x30 是相机的位置)

到目前为止,我已经看到 Y = C x 其中 Y= [y1; y2;1 ], x= [x1-x10; x2-x20;x3-x30;1] 和 C =[f 0 0 0;0 f 0 0; 0 0 1 0]

我知道 Y 是假设对象在 2d 图片中的位置,x 是对象在 3d 空间中的位置,C 是相机矩阵。

插入我所有的数字,我得到 Y= [-.3679;0.3463;4.9583]。我认为这是不对的,如果是这样,我不知道这些数字如何与我的 540x480 图像相对应

要获取对象的坐标,我正在使用

我期望 2 个数字的输出与 2d 图片中对象的位置相对应并匹配。

0 投票
1 回答
91 浏览

c# - C# OpenGL OpenTK - 当我调整 eye.X 值时,相机会远离绘图

几天来,我一直在尝试在 OpenGL 中设置相机,但我无法让它正常工作。随着 eye.X 或 eye.Y 值的增加/减少,而不是“环顾四周”,相机(我知道没有相机之类的东西......)移开/靠近图纸!

我希望以下信息可以帮助你。(我还上传了一个视频,显示错误): https ://www.youtube.com/watch?v=OlD5X0EzkUw

这些是我在OnUpdateFrame上的 ModelView 计算。

在这里,我使用OnMouseMove函数调整值:

最后是我的顶点着色器

0 投票
1 回答
336 浏览

python - 确定近似相机矩阵

我想确定一个提要的相机矩阵。图像的宽度shape=(1440,2960)是 1440 是高度,2960 是宽度。

我想找到相同的相机矩阵。我使用以下计算找到cx,cy

我如何找到一个近似值fxfy?我尝试使用 shape[1] 作为焦距,但由于某种原因它似乎不起作用:(