标签: perspectivecamera

gluPerspective参数 - 它们是什么意思?

我想知道gluPerspective参数.

在我看到的所有例子中fovy都设置为大约45-60度,我试图将其设置为不同的值,对象只是消失了对它的解释?

aspect值应始终比例是多少?为什么要改变它?

zNear, zFar - 再次通常的值大约是10和500+它反映的是什么?

opengl perspectivecamera perspective

42
推荐指数
1
解决办法
3万
查看次数

基本,基本和同构矩阵之间的区别

我有两张图片来自不同的位置.第二个摄像头位于右侧,相对于第一个摄像头向上和向后.所以我认为两个视图之间存在透视变换而不仅仅是仿射变换,因为摄像机处于相对不同的深度(我是对的吗?)我在两个图像之间有一些对应的点.我想使用这些对应点来确定每个像素从第1个到第2个图像的变换.

我对函数findFundamentalMatfindHomography感到困惑.... 两者都返回3x3矩阵,两者有什么区别?

是否有任何条件/使用它们的先决条件(何时使用它们)?

哪一个用于将点从第一图像转换为第二图像?在函数返回的3x3矩阵中,它们是否包括两个图像帧之间的旋转和平移?

维基百科,我们发现基本矩阵是相应图像点之间的关系.在苏答案在这里,它是说本质矩阵E被需要得到相应的点...但我没有照相机内部矩阵计算è.....我只是有两个图像.

我该如何确定相应的点?等待建议..谢谢

opencv transform homography perspectivecamera projective-geometry

30
推荐指数
3
解决办法
1万
查看次数

为什么相机内在矩阵中的焦距有两个维度?

针孔摄像机模型中,只有一个焦距位于主点和摄像机中心之间.

但是,在计算相机的内部参数后,矩阵包含

(fx,  0,  offsetx,  0,
 0,  fy,  offsety,  0,
 0,   0,  1,        0)
Run Code Online (Sandbox Code Playgroud)

这是因为图像传感器的像素在x和y中不是正方形吗?

谢谢.

computer-vision perspectivecamera camera-calibration

24
推荐指数
1
解决办法
2万
查看次数

如何从旋转角度计算OpenCV的透视变换?

我想从旋转角度和到物体的距离开始计算透视变换(warpPerspective函数的矩阵).

怎么做?

我在OE上找到了代码.示例程序如下:

#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>
#include <math.h>

using namespace std;
using namespace cv;

Mat frame;

int alpha_int;
int dist_int;
int f_int;

double w;
double h; 
double alpha; 
double dist; 
double f;

void redraw() {

    alpha = (double)alpha_int/1000.;
    //dist = 1./(dist_int+1);
    //dist = dist_int+1;
    dist = dist_int-50;
    f = f_int+1;

    cout << "alpha = " << alpha << endl;
    cout << "dist = " << dist << endl;
    cout << "f = " << f …
Run Code Online (Sandbox Code Playgroud)

c++ math opencv transformation perspectivecamera

15
推荐指数
1
解决办法
2万
查看次数

OpenCV来自特征点的外在摄像头

当我从每个摄像机的视图中获取对象的图片时,如何使用OpenCV检索旋转矩阵,平移向量以及每个摄像机的某些缩放因子?对于每张图片,我都有几个特征点的图像坐标.并非所有特征点都在所有图片中都可见.我想将对象的特征点的计算的3D坐标映射到稍微不同的对象,以将第二对象的形状与第一对象对齐.

我听说它可以使用,cv::calibrateCamera(...)但我无法通过它......

有人有这种问题的经历吗?

opencv computer-vision perspectivecamera camera-calibration

12
推荐指数
1
解决办法
1万
查看次数

在Three.js中设置2D视图

我是新手three.js,正在尝试使用这些3D工具设置相当于2D可视化(适用于各种分层精灵).我想对PerspectiveCamera()论点和camera.position.set()论点提供一些指导.我已经在正确的方向轻推这个答案相关问题,这说来设置z坐标等于0camera.position.set(x,y,z).

下面是我从一个stemkoski的three.js示例中修改的代码片段.被挂了我的时刻的部分是对的价值观VIEW_ANGLE,xy.假设我希望在平面上有一个平面摄像机视图,屏幕大小应该如何分配这些变量?我尝试了一系列的值,但很难从可视化中看出发生了什么.提前致谢!

var SCREEN_WIDTH = window.innerWidth, SCREEN_HEIGHT = window.innerHeight;   
var VIEW_ANGLE = ?, ASPECT = SCREEN_WIDTH / SCREEN_HEIGHT, NEAR = 0.1, FAR = 20000;
camera = new THREE.PerspectiveCamera( VIEW_ANGLE, ASPECT, NEAR, FAR);
scene.add(camera);
var x = ?, y = ?, z = 0;
camera.position.set(x,y,z);
camera.lookAt(scene.position);
Run Code Online (Sandbox Code Playgroud)

更新 - 透视与正交相机:

谢谢@GuyGood,我意识到我需要对透视相机和正交相机做出设计选择.我现在看到PerspectiveCamera(),即使在这个2D上下文中也允许像视差这样的东西,而OrthographicCamera()无论我的2D元素在哪个层上,都允许文字渲染大小(不随距离减小).我倾向于认为我仍然会使用PerspectiveCamera() …

javascript graphics 2d perspectivecamera three.js

11
推荐指数
1
解决办法
1万
查看次数

试图理解WebGL中透视矩阵背后的数学

WebGL的所有矩阵库都具有某种perspective功能,您可以调用它来获取场景的透视矩阵.
例如,文件中的perspective方法是如此编码:mat4.jsgl-matrix

mat4.perspective = function (out, fovy, aspect, near, far) {
    var f = 1.0 / Math.tan(fovy / 2),
        nf = 1 / (near - far);
    out[0] = f / aspect;
    out[1] = 0;
    out[2] = 0;
    out[3] = 0;
    out[4] = 0;
    out[5] = f;
    out[6] = 0;
    out[7] = 0;
    out[8] = 0;
    out[9] = 0;
    out[10] = (far + near) * nf;
    out[11] = -1;
    out[12] = 0;
    out[13] = …
Run Code Online (Sandbox Code Playgroud)

math opengl-es matrix perspectivecamera webgl

10
推荐指数
1
解决办法
3513
查看次数

将像素从一个图像重新投影到另一个图像

我有许多校准过的相机拍摄平面场景的照片.为简单起见,我们假设有3个摄像头.那些相机正在进行一般运动,但主要是翻译加上一些温和的旋转.相机的示例位置

任务是完全缝合它们.我不了解3D坐标,只是用校准相机拍摄的一组图像.

我所做的:

我在OpenCV中使用SURF/SIFT实现检测特征,通过在每对图像之间使用findHomography来获得初始单应性(1-> 2,2- > 3,1- > 3).从那些单应性我得到每个相机的姿势的初始esitimation (类似的程序到此)

然后我尝试使用束调整技术来最小化每个匹配对的重投影错误.优化参数是三个平移值和三个旋转值(从Rodrigues的旋转公式获得),尽管我可以稍后添加内部参数(焦点,主要点等).

假设图像#2将是参考帧(通过与其他两个图像具有最大量的匹配),其旋转和平移矩阵分别是同一性和零矩阵.

我计算从图像#2到图像#1的关键点(在图像#2和图像#1中均可见)的重投影为(伪代码)

[x1_; y1_; z1_] = K1*R1*inv(K2)*[x2; y2; 1] + K1*T1/Z2;
x1 = x1_/z1_;
y1 = y1_/z1_;
Run Code Online (Sandbox Code Playgroud)

要么

x1 = ((f1/f2)*r11*x2 + (f1/f2)*r12*y2 + f1*r13 + f1*tx/Z2) / ((1/f2)*r31*x2 + (1/f2)*r32*y2 + r33 + tx/Z2)
y1 = ((f1/f2)*r21*x2 + (f1/f2)*r22*y2 + f1*r23 + f1*ty/Z2) / ((1/f2)*r31*x2 + (1/f2)*r32*y2 + r33 + ty/Z2)
Run Code Online (Sandbox Code Playgroud)

其中r__是R1矩阵的元素,两个内在矩阵都是

[f 0 0]
[0 f 0]
[0 0 1]
Run Code Online (Sandbox Code Playgroud)

我假设参考帧的Z2坐标为1.

下一阶段是使用所获得的相机矩阵(K1,R1,T1,K3,R3,T3)将图像#1和#3变形为图像#2的公共坐标系.

问题是我不知道正确重投影到图像#2的参考帧所需的Z1和Z3,因为来自图像#1 - …

opencv computer-vision photogrammetry perspectivecamera image-stitching

9
推荐指数
1
解决办法
2421
查看次数

Python - 从旋转角度对OpenCV进行透视变换

我正在努力depth map with OpenCV.我可以获得它,但它是从左相机原点重建的,后者有一点倾斜,如图所示,深度"移位"(深度应该接近,没有水平渐变):

在此输入图像描述

我想以零角度表达它,我尝试使用warp透视函数,如下所示,但我获得了一个空字段...

P = np.dot(cam,np.dot(Transl,np.dot(Rot,A1)))

dst = cv2.warpPerspective(depth, P, (2048, 2048))
Run Code Online (Sandbox Code Playgroud)

用:

#Projection 2D -> 3D matrix
A1 = np.zeros((4,3))
A1[0,0] = 1 
A1[0,2] = -1024
A1[1,1] = 1
A1[1,2] = -1024
A1[3,2] = 1

#Rotation matrice around the Y axis
theta = np.deg2rad(5) 
Rot = np.zeros((4,4))
Rot[0,0] = np.cos(theta)
Rot[0,2] = -np.sin(theta)
Rot[1,1] = 1
Rot[2,0] = np.sin(theta)
Rot[2,2] = np.cos(theta)
Rot[3,3] = 1

#Translation matrix on the X axis 
dist = 0
Transl …
Run Code Online (Sandbox Code Playgroud)

python opencv stereo-3d perspectivecamera

9
推荐指数
1
解决办法
1506
查看次数

ThreeJS 轨道控件无需 LookAt 即可设置目标

我正在尝试制作一个用于构建模型的 3D 查看器。我们已加载模型并尝试与模型进行某种交互。因此,我们使用 OrbiControls 来旋转、平移和缩放模型。

我们希望在查看器中具有这样的行为:当用户单击并拖动(从而旋转)时,旋转中心位于用户单击的建筑物点处。

我认为我通过改变 OrbitControl 的目标是明智的:

control.target.set(newX, newY, newZ);
Run Code Online (Sandbox Code Playgroud)

然而,我在 OrbitControl.js 文件的源代码中发现,当控件更新时,

camera.lookAt() 
Run Code Online (Sandbox Code Playgroud)

调用函数,这会导致相机跳转到新位置。

有什么办法可以解决这个问题吗?我已经尝试了几个小时了,但似乎没有任何效果。

尝试更改 target0,然后在控件上调用 Reset() 。还尝试将相机改回原来的位置(这可能是它的做法,但我可能尝试得不好。

javascript orbital-mechanics perspectivecamera three.js

8
推荐指数
1
解决办法
1万
查看次数