因此,我有一个Matlab脚本,该脚本可以处理数据,然后将其显示在屏幕上。使用以下命令设置摄像机和盒子:
Xlim = [-33 33];
Ylim = [-2 60];
Zlim = [-1 60];
Cam_Pos = [-0.5 -1.2 -0];
Cam_Tar = [-1.7 100 -3.5];
Cam_Ang = 30;
axis('off');
grid 'on'
xlim(Xlim)
ylim(Ylim)
zlim(Zlim)
campos(Cam_Pos);
camtarget(Cam_Tar);
camproj('perspective');
ax0.XColor = [1 1 1];
ax0.YColor = [1 1 1];
ax0.ZColor = [1 1 1];
set(gca,'CameraViewAngle',Cam_Ang, 'Clipping', 'on', 'ClippingStyle', '3dbox')
现在,使用OpenCV进行图像处理,将以前在Matlab中编写的代码重写为C ++。最后,我得到了3D空间中的点阵列,该点应该绘制在图像上,并且结果看起来应该与Matlab脚本产生的点相似。
是否可以从该数据中获得对象变换矩阵,如果将其与点坐标矩阵相乘会产生所需的结果?