您现在的位置是:首页 > IT要闻 当前栏目 python pcl学习入门 学习 入门 2023-03-02 11:47:57 时间 源码地址: [https://github.com/strawlab/python-pcl][https_github.com_strawlab_python-pcl] pcd可视化: # -*- coding: utf-8 -*- # Point cloud library import pcl import pcl.pcl_visualization # Opencv # import opencv import cv2 def main(): a = 22 b = 12 c = 10 # PCL Visualizer to view the pointcloud # pcl::visualization::PCLVisualizer viewer ("Simple visualizing window"); viewer = pcl.pcl_visualization.PCLVisualizering() # int main (int argc, char** argv) # { # pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>); # pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud_filtered (new pcl::PointCloud<pcl::PointXYZRGBA>); # if (pcl::io::loadPLYFile<pcl::PointXYZRGBA> (argv[1], *cloud) == -1) //* load the ply file from command line # { # PCL_ERROR ("Couldn't load the file\n"); # return (-1); # } # cloud = pcl.load("lamppost.pcd") # cloud = pcl.load("Tile_173078_LD_010_017_L22.obj") cloud = pcl.load("official/Surface/bun0.pcd") # pcl::copyPointCloud( *cloud,*cloud_filtered); # cloud_filtered = cloud.copyPointCloud() cloud_filtered = cloud # float i # float j # float k # cv::namedWindow("picture"); # // Creating trackbars uisng opencv to control the pcl filter limits # cvCreateTrackbar("X_limit", "picture", &a, 30, NULL); # cvCreateTrackbar("Y_limit", "picture", &b, 30, NULL); # cvCreateTrackbar("Z_limit", "picture", &c, 30, NULL); # cv2.CreateTrackbar("X_limit", "picture", a, 30) # cv2.CreateTrackbar("Y_limit", "picture", b, 30) # cv2.CreateTrackbar("Z_limit", "picture", c, 30) # // Starting the while loop where we continually filter with limits using trackbars and display pointcloud # char last_c = 0; last_c = 0 # while(true && (last_c != 27)) while last_c != 27: # pcl::copyPointCloud(*cloud_filtered, *cloud); # // i,j,k Need to be adjusted depending on the pointcloud and its xyz limits if used with new pointclouds. i = 0.1 * a j = 0.1 * b k = 0.1 * c # Printing to ensure that the passthrough filter values are changing if we move trackbars. # cout << "i = " << i << " j = " << j << " k = " << k << endl; print("i = " + str(i) + " j = " + str(j) + " k = " + str(k)) # Applying passthrough filters with XYZ limits # pcl::PassThrough<pcl::PointXYZRGBA> pass; # pass.setInputCloud (cloud); # pass.setFilterFieldName ("y"); # // pass.setFilterLimits (-0.1, 0.1); # pass.setFilterLimits (-k, k); # pass.filter (*cloud); pass_th = cloud.make_passthrough_filter() pass_th.set_filter_field_name("y") pass_th.set_filter_limits(-k, k) cloud = pass_th.filter() # pass.setInputCloud (cloud); # pass.setFilterFieldName ("x"); # // pass.setFilterLimits (-0.1, 0.1); # pass.setFilterLimits (-j, j); # pass.filter (*cloud); # pass_th.setInputCloud(cloud) pass_th.set_filter_field_name("x") pass_th.set_filter_limits(-j, j) cloud = pass_th.filter() # pass.setInputCloud (cloud); # pass.setFilterFieldName ("z"); # // pass.setFilterLimits (-10, 10); # pass.setFilterLimits (-i, i); # pass.filter (*cloud); # pass_th.setInputCloud(cloud) pass_th.set_filter_field_name("z") pass_th.set_filter_limits(-10, 10) cloud = pass_th.filter() # // Visualizing pointcloud # viewer.addPointCloud (cloud, "scene_cloud"); # viewer.spinOnce(); # viewer.removePointCloud("scene_cloud"); viewer.AddPointCloud(cloud, b'scene_cloud', 0) viewer.SpinOnce() # viewer.Spin() viewer.RemovePointCloud(b'scene_cloud', 0) if __name__ == "__main__": # import cProfile # cProfile.run('main()', sort='time') main() [https_github.com_strawlab_python-pcl]: https://github.com/strawlab/python-pcl 本文地址: python pcl学习入门 相关文章 写技术博客的一些心得分享 HDFS 高可用分布式环境搭建 HDFS 分布式环境搭建 HDFS 伪分布式环境搭建 使用单调栈来解决的一些问题 与归并排序相关的一些问题 使用打表法找规律 前缀树的设计与实现 矩阵类问题处理技巧 使用位运算技巧比较两个数中较大的数 使用位运算技巧实现加减乘除 位图的使用与实现 栈和队列相关的一些问题 和链表相关的一些问题 消息队列常见问题总结 使用二分法来解决的一些问题 随机函数变换相关技巧 找到字符串中所有字母异位词 求数据流中的中位数问题 如何用常数时间插入、删除和获取随机元素