小编emi*_*ish的帖子

基于已知相机方向的OpenCV中的透视变形

我正在研究一个项目,该项目试图根据相机的已知方向从图像中消除透视失真.我的想法是我可以根据摄像机的已知X,Y和Z方向创建旋转矩阵.然后我可以通过WarpPerspective方法将这些矩阵应用于图像.

在我的脚本(用Python编写)中,我创建了三个旋转矩阵,每个矩阵都基于一个方向角.我已经到了一个问题,我被困在两个问题上.首先,当我将每个单独的矩阵加载到WarpPerspective方法中时,它似乎无法正常工作.每当我在一个轴上扭曲图像时,它就会显着超过图像.如果我将方向角限制在1度左右或更小,则只能识别图像的内容.

其次,如何将三个旋转矩阵组合成一个矩阵,以加载到WarpPerspective方法中.我可以将3x3旋转矩阵导入到该方法中,还是必须创建4x4投影矩阵.以下是我正在处理的代码.

谢谢您的帮助.

CR

from numpy import *
import cv

#Sets angle of camera and converts to radians
x =  -14 * (pi/180)
y = 20 * (pi/180)
z =  15 * (pi/180)

#Creates the Rotational Matrices
rX = array([[1, 0, 0], [0, cos(x), -sin(x)], [0, sin(x), cos(x)]])
rY = array([[cos(y), 0, -sin(y)], [0, 1, 0], [sin(y), 0, cos(y)]])
rZ = array([[cos(z), sin(z), 0], [-sin(z), cos(z), 0], [0, 0, 1]])

#Converts to CVMat format
X = cv.fromarray(rX)
Y = …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision

5
推荐指数
2
解决办法
5679
查看次数

如何使用立体三角测量从2D图像点计算3D对象点?

我有一个使用OpenCV和Python校准的立体校准相机系统.我试图用它来计算图像点的3D位置.我收集了内在和外在矩阵,以及E,F,R和T矩阵.我对如何将2D图像点三角测量到3D对象点感到困惑.我已阅读以下文章,但我对这个过程感到困惑(在校准的立体视觉设备中,如何获得实现3D三角测量算法所需的"相机矩阵"?).有人可以解释如何从2D到3D吗?从阅读开始,我觉得基本矩阵(F)很重要,但我没有找到一种明确的方法将它与投影矩阵(P)联系起来.有人可以指导我完成这个过程吗?

我感谢任何帮助.

python opencv image-processing triangulation stereoscopy

5
推荐指数
1
解决办法
7588
查看次数