我目前使用名为procamcalib的JavaCV软件来校准Kinect-Projector设置,该设置以Kinect RGB Camera为原点.此设置仅包括Kinect RGB相机(我现在大致使用Kinect作为普通相机)和一台投影仪.该校准软件使用LibFreenect(OpenKinect)作为Kinect驱动程序.
一旦软件完成其过程,它将为我提供相机和投影仪的内在和外在参数,这些参数被抛出在OpenGL软件上以验证校准,并且是一些问题开始的地方.正确设置投影和模型视图后,我应该能够适应Kinect所看到的投影内容,但为了达到这个目的,我必须在所有3轴上进行手动平移,最后一部分不做对我有任何意义!你能帮我解整一下吗?用于检索Kinect数据的SDK是OpenNI(不是最新的2.x版本,应该是1.5.x)
我将解释我正在做什么来重现这个错误.校准参数使用如下:
投影矩阵设置为(基于 http://sightations.wordpress.com/2010/08/03/simulating-calibrated-cameras-in-opengl/):
r = width/2.0f; l = -width/2.0f;
t = height/2.0f; b = -height/2.0f;
alpha = fx; beta = fy;
xo = cx; yo = cy;
X = kinectCalibration.c_near + kinectCalibration.c_far;
Y = kinectCalibration.c_near*kinectCalibration.c_far;
d = kinectCalibration.c_near - kinectCalibration.c_far;
float* glOrthoMatrix = (float*)malloc(16*sizeof(float));
glOrthoMatrix[0] = 2/(r-l); glOrthoMatrix[4] = 0.0f; glOrthoMatrix[8] = 0.0f; glOrthoMatrix[12] = (r+l)/(l-r);
glOrthoMatrix[1] = 0.0f; glOrthoMatrix[5] = 2/(t-b); glOrthoMatrix[9] = …Run Code Online (Sandbox Code Playgroud)