C++ 计算机视觉数据集的仿真

C++ 计算机视觉数据集的仿真,c++,matlab,computer-vision,augmented-reality,C++,Matlab,Computer Vision,Augmented Reality,我正在研究计算机视觉应用中多摄像机的使用。房间的每个角落都有一个摄像头,任务是人体跟踪。我想模拟这种环境。我需要的是: 能够定义动态3D环境,例如房间和移动对象 将摄影机放置在不同位置并获取每个摄影机的模拟数据集的选项 有人有这方面的经验吗?我查看了blender(),但目前我正在寻找一种更快/更易于使用的解决方案 P>你可以给我类似的软件/库(最好是C++或Matlab)的指导吗?< /P> < P>你可以发现ILUMICS完全符合你的需要: 如果我没弄错的话!您希望在环境的不同位置模拟

我正在研究计算机视觉应用中多摄像机的使用。房间的每个角落都有一个摄像头,任务是人体跟踪。我想模拟这种环境。我需要的是:

  • 能够定义动态3D环境,例如房间和移动对象
  • 将摄影机放置在不同位置并获取每个摄影机的模拟数据集的选项
有人有这方面的经验吗?我查看了blender(),但目前我正在寻找一种更快/更易于使用的解决方案


<> P>你可以给我类似的软件/库(最好是C++或Matlab)的指导吗?< /P> < P>你可以发现ILUMICS完全符合你的需要:


如果我没弄错的话!您希望在环境的不同位置模拟来自多个摄影机的摄影机馈送。
我不知道有任何网站或现成的解决方案,但我会这样做:
购买动态环境的3d点云(请参阅)或使用Kinect生成自己的点云(希望您随身携带Xbox Kinect)。

一旦获得PCL点云格式的kinect点云,就可以模拟来自各种摄像机的视频馈送。
这样的伪代码就足够了:

#include <pcl_headers>

//this method just discards all 3d depth information and fills the pixels with rgb values
//this is like a snapshot in the pcd_viewer of pcl(point cloud library)
makeImage(cloud,image){};

pcd <- read the point clouds
camera_positions[] <- {new CameraPosition(affine transform)...}

for(camera_position in camera_positions)
    pcl::transformPointCloud(pcd,
                             cloud_out,
                             camera_position.getAffineTransform()
                            );
//Now cloud_out contains point cloud in different viewpoint
    image <- new Image();
    make_image(cloud_out,image);
    saveImage(image);   
#包括
//此方法仅丢弃所有三维深度信息,并用rgb值填充像素
//这就像pcl(点云库)的pcd_查看器中的快照
makeImage(云,图像){};
pcd