[python][pcl]python-pcl案例之cropbox操作
pcl==1.13.0
python-pcl==0.3.1
python==3.7
代码:
# -*- coding: utf-8 -*- from __future__ import print_functionimport numpy as np import pcldef main():cloud = pcl.load('./examples/pcldata/tutorials/table_scene_mug_stereo_textured.pcd')# pcl::CropBox<PointXYZI> clipper;# clipper.setInputCloud(cloud);clipper = cloud.make_cropbox()# pcl::PCDWriter writer;# pcl::PointCloud<PointXYZI>::Ptr outcloud;outcloud = pcl.PointCloud()# clipper.setTranslation(Eigen::Vector3f(pose->tx, pose->ty, pose->tz));# clipper.setRotation(Eigen::Vector3f(pose->rx, pose->ry, pose->rz));# clipper.setMin(-Eigen::Vector4f(tracklet->l/2, tracklet->w/2, 0, 0));# clipper.setMax(Eigen::Vector4f(tracklet->l/2, tracklet->w/2, tracklet->h, 0));# clipper.filter(*outcloud);tx = 0ty = 0tz = 0clipper.set_Translation(tx, ty, tz)rx = 0ry = 0rz = 0clipper.set_Rotation(rx, ry, rz)minx = -1.5miny = -1.5minz = 2mins = 0maxx = 3.5maxy = 3.5maxz = 3maxs = 0clipper.set_MinMax(minx, miny, minz, mins, maxx, maxy, maxz, maxs)outcloud = clipper.filter()pcl.save(outcloud, "test.pcd")# stringstream outfilename;# outfilename << outfile << tracklet->objectType << i << ".pcd";# if(!outcloud->empty()){# cout << "Found "<<outcloud->size() << " points, writing to " << outfilename.str() << endl;# writer.write<PointXYZI> (outfilename.str(), *outcloud, false);# }else{# cerr << "Couldn't find points for tracklet" << tracklet->objectType << i << endl;# }if __name__ == "__main__":# import cProfile# cProfile.run('main()', sort='time')main()