[python][pcl]python-pcl案例之兔子显示

news2024/12/26 22:51:08
兔子pcd文件下载:firc.lanzoux.com/iLfSgg749ab

# -*- coding: utf-8 -*-
# Point cloud library
import pcl
import pcl.pcl_visualization

# Opencv
# import opencv
import cv2


def main():
    # These are track bar initial settings adjusted to the given pointcloud to make it completely visible.
    # Need to be adjusted depending on the pointcloud and its xyz limits if used with new pointclouds.
    # int a = 22;
    # int b = 12;
    # int c=  10;
    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("rabbit.pcd")
    #cloud = pcl.load("Tile_173078_LD_010_017_L22.obj")

    # 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()

输出:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客网Verilog刷题——VL12

牛客网Verilog刷题——VL12 题目答案 题目 4bit超前进位加法器的逻辑表达式如下&#xff1a; G i G_i Gi​ A i A_i Ai​ B i B_i Bi​&#xff0c; P i P_i Pi​ A i A_i Ai​ ⊕ \oplus ⊕ B i B_i Bi​   和&#xff1a; S i S_i Si​ P i P_i Pi​ ⊕ \oplus ⊕ C i − 1…

DHCP协议详解

DHCP是什么 1.1 DHCP定义 DHCP&#xff08; Dynamic Host Configuration Protocol&#xff0c; 动态主机配置协议&#xff09;定义&#xff1a; 存在于应用层&#xff08;OSI&#xff09; 前身是BOOTP&#xff08;Bootstrap Protocol&#xff09;协议 是一个使用UDP&#xff08…

如何正确选择集体渲染(云渲染)和gpu离线渲染

在数字娱乐领域&#xff0c;渲染是制作高质量影像的关键步骤之一。随着技术的不断发展和应用的广泛普及&#xff0c;渲染方式也在不断演进。目前&#xff0c;集体渲染&#xff08;云渲染&#xff09;和GPU离线渲染是两种比较流行的渲染方式。那么&#xff0c;哪种方式会更快呢&…

一文了解什么是5G

5G是第五代移动网络。它是继1G、2G、3G、4G网络之后的新的全球无线标准。5G 支持一种新型网络&#xff0c;旨在将几乎所有人和所有事物连接在一起&#xff0c;包括机器、物体和设备。 一、前几代移动网络和5G有什么区别 第一代 – 1G 1980 年代&#xff1a;1G 传送模拟语音。…

软件测试标准升级|新版25000标准解读

广电计量 目录 收起 一、覆盖软件产品八大特性的测试依据及准则 二、信息安全测试的关键要点 三、兼容性测试的关键要点 四、功能测试的关键要点 五、性能效率测试的关键要点 六、易用性测试的关键要点 七、可靠性测试的关键要点 八、维护性测试的关键要点 九、可移植…

Linux各文件权限

参考:https://blog.csdn.net/weixin_45423515/article/details/126652740 一、切换root权限 既然root是最大的权限&#xff0c;那么这里就来了解一下如果切换到root用户。 su - //切换成root 这就是切换人的权限&#xff0c;但是大多数情况是root权限不会轻易的分给普通用户…

NIS服务

NIS 文章目录 NIS一、NIS二、简介2.1 NIS的产生2.2 什么是NIS&#xff1f; 三、NIS的相关组件3.1 服务端3.1.1 配置文件3.1.2 主要服务3.1.3 数据库相关指令 3.2 客户端3.2.1 配置文件3.2.2 主要指令 四、NIS环境4.1 NIS所需的软件包4.2 NIS Server (Master/Slave)4.3 NIS Clie…

unity3d---物体加点击事件

目录 1.给需要点击点物体加collider 2.层级面板加EventSystem 3. 相机加Physics Raycaster 4.物体单独响应点击事件 5.控制脚本实现各物体的点击事件 6.点击ui时屏蔽 物体点击事件 1.给需要点击点物体加collider 2.层级面板加EventSystem 3. 相机加Physics Raycaster 2d…

机器学习 Rider数据集分析和预测

介绍数据集 ride_id&#xff1a;乘车ID rideable_type&#xff1a;乘车类型 started_at&#xff1a;开始日期 ended_at &#xff1a;结束日期 start_station_name&#xff1a;开始站的名字 start_station_id&#xff1a;开始站的ID end_station_name&#xff1a;结束站的名字 …

魔百和UNT403G 国科芯片2+8 安卓9.0 免拆机纯净线刷包

固件特点&#xff1a; 1、本固件在UNT403G 盒子上测试可用&#xff0c; 其它盒子请慎 重使用&#xff1b; 2、支持原装遥控器&#xff0c;语音蓝牙遥控器&#xff1b; 3、固件压缩包有刷机教程&#xff0c;请一定仔细阅读。 4、刷机后三网通用&#xff0c;可自由安装应用&#…

NewBing 边栏快捷插件没有了!如何解决?如何脱离浏览器使用 New Bing?

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

【移动端网页布局】流式布局 ① ( 流式布局简介 | 百分比布局 / 非固定像素布局 | 根据屏幕尺寸 / 设备类型自动调整网页布局 )

文章目录 一、流式布局简介二、流式布局代码示例 一、流式布局简介 流式布局 又称为 百分比布局 / 非固定像素布局 ; 为 流式布局 中 盒子模型 设置 百分比宽度 , 其大小可以根据屏幕宽度自适应伸缩 , 该盒子没有像素限制 , 内容自动向左右两边填充 ; 流式布局 可以 根据 设备…

蓝库云|究竟什么是ERP?它对企业有什么重要性作用呢

一、什么是ERP ERP全称为Enterprise Resource Planning&#xff0c;即企业资源计划&#xff0c;是一种运用信息技术手段来集成管理企业内部所有资源&#xff0c;协调各项业务、机构、流程和人员&#xff0c;实现高效、协同、合规经营的商业管理软件。ERP系统包括销售、采购、物…

Docker-compose组成|搭建(nginx|tomcat)

Docker-compose组成|搭建&#xff08;nginx|tomcat&#xff09; 一 Docker-Compose二 Docker-Compose安装部署三 YML文件编写注意事项四 docker Compose撰写nginx 镜像五 docker Compose撰写tomcat镜像 一 Docker-Compose 1、Docker-Compose使用场景 我们知道使用一个Dockerfi…

c/c++:栈帧,传值,传址,实参传值给形参,传地址指针给形参

c/c&#xff1a;栈帧&#xff0c;传值&#xff0c;传址&#xff0c;实参传值给形参&#xff0c;传地址指针给形参 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;此时学会c的话&#xff0c; 我所知道的周边的会c的同学&…

[比赛简介]AMP®-Parkinson‘s Disease Progression Prediction

比赛链接&#xff1a;AMP-Parkinsons Disease Progression Prediction | Kaggle 比赛简介 本次竞赛的目标是预测MDS-UPDR评分&#xff0c;该评分衡量帕金森病患者的进展。运动障碍协会赞助的统一帕金森病评定量表&#xff08;MDS-UPDRS&#xff09;修订版是对与帕金森病相关…

使用Charles进行HTTPS抓包

charles安装 下载地址 https://www.charlesproxy.com/download/latest-release/ 我安装的是charles-4.6.4版本 配置手机 注意: 一定要在同一网段 mac电脑的ip地址 手机的ip地址 使用同样的命令 长按配置代理,连接到电脑 此时抓包,会看到一堆unknown, 因为请求的是https…

Web安全 文件上传靶场搭建(玩转整个 文件上传 环境.)

Web安全 文件上传靶场搭建 文件上传漏洞是指 Web 服务器允许用户将文件上传至其文件系统&#xff0c;但这些文件可能并没有经过充分的验证&#xff0c;如文件名称、类型、内容或大小等。未能正确执行这些限制就意味着即使最基本的图像上传功能也可能用于上传任意具有潜在危险的…

GitHub 现在允许大规模启用私有漏洞报告

GitHub 宣布私人漏洞报告现已普遍可用&#xff0c;并且可以在属于组织的所有存储库上大规模启用。 启用后&#xff0c;安全研究人员可以使用此专用通信渠道向开源项目的维护人员私下披露安全问题&#xff0c;而不会意外泄露漏洞详细信息。 GitHub 的埃里克图利 (Eric Tooley)…

这些美国名校的AI人工智能大牛,你知道几个?

CS专业被US News评为就业TOP 100职业第一名、STEM职业第一名、技术类职业第一名。 AI人工智能&#xff0c;随着GPT的横空出世已成为最热门的CS专业。“深度学习”和“神经网络”等是新一代人工智能的重要代表&#xff0c;如今在面部识别、语音输入、基因医疗等重要领域被广泛应…