码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • win10环境下PCL安装和配置回顾(二)


    前面一篇回顾了PLC官网资料,安装方法和使用,接下来回顾下如何在MFC、QT、Python环境下的使用,如何在这些环境下的界面上显示vtk数据或者pcl数据。这三种环境也是常涉及到的,所以有必要整清楚点。

    一. MFC环境下在界面显示vtk数据或者pcl数据

    1. MFC界面显示PCL点云

    博主根据之前博客,又重新配置了下

    MFC界面上显示pcl点云数据_竹叶青lvye的博客-CSDN博客_mfc pcl显示

    显示效果如下:

     MFC工程链接如下:

    链接:https://pan.baidu.com/s/1F0woRBfvbEomKy_UVckGDw 
    提取码:rxjn 
     

    2. MFC界面显示VTK数据

    由于PLC自带的vtk并不含有支持MFC的功能,所以这里需要重新编译下vtk,过程见博主之前博客

    VS2017、QT5.12.1环境下的VTK8.0编译过程记录_竹叶青lvye的博客-CSDN博客_vtkguisupportqt

    vtk的官网路径

    VTK - The Visualization Toolkit

    gitlab中可以下载vtk源码 VTK / VTK · GitLab

    Cmake官网链接如下:

    Download | CMake

    网址Index of /files可以下载各版本

    博主这里使用cmake又重新编译了下vtk,当然环境和之前博客不一样VS2017、QT5.12.1环境下的VTK8.0编译过程记录_竹叶青lvye的博客-CSDN博客_vtkguisupportqt

    这次QT版本是5.14.2,VS版本是2019

     cmake工具,记得勾选Grouped和Advanced两个选项,不然很多编译的命令指定项修改不了。

    VS2019配置QT的过程见博主之前的博客

    VS2019配置Qt5.14.2以及在线配置Qt5.15.2_竹叶青lvye的博客-CSDN博客_vs2019对应qt多少

    cmake的一些过程记录如下:

     生成的工程编译后,产生一个错误(和之前博客里一样,一些文件没有下载完毕)。

    再次编译即可

     博主这边只编译下debug版本。Release版本方法一样。

    完毕后可以仅生成下install工程。

     可以和pcl自带的vtk目录对比,是一样的。

     同时也看到两边的名字命名方式也基本相同

     所以不需要批量去更改名字,若碰到批量更改,可参考之前博客中脚本的方法。该篇上面还有一份统计文件夹里文件名字的脚本,也是常用的,可参考。

    这边直接将编译的替换为了原来的。替换后,直接运行上面的MFCPLC例子也是可以直接跑的。

    这边博主又重新构造了一份工程,实现下博客中的功能,这里工程中只引用了vtk相关内容,vtk的lib库名列表,可用如下脚本提取:

    1. # author:"jiugeshao"
    2. # data:2022/9/3 2:16
    3. import os
    4. def ListFilesToTxt(Currentdir, outfile, nameExtentisons, isIncludeSubDir, isDebug):
    5. """
    6. :param Currentdir: 需要统计的目录
    7. :param outfile: 需要输出到的txt文件
    8. :param nameExtentisons: 后缀列表
    9. :param isIncludeSubDir: 是否需要统计子目录
    10. :return:
    11. """
    12. exts = nameExtentisons.split(" ")
    13. files = os.listdir(Currentdir)
    14. for name in files:
    15. fullname = os.path.join(Currentdir, name)
    16. if (os.path.isdir(fullname) & isIncludeSubDir):
    17. ListFilesToTxt(fullname, outfile, nameExtentisons, isIncludeSubDir, isDebug)
    18. else:
    19. for ext in exts:
    20. if (name.endswith(ext)):
    21. if(isDebug == True):
    22. if("gd" in name or "d.lib" in name):
    23. outfile.write(name + "\n")
    24. break
    25. else:
    26. if("gd" not in name or "d.lib" in name):
    27. outfile.write(name + "\n")
    28. break
    29. def Read(Currentdir, outfile, isDebug):
    30. """
    31. :param Currentdir:需要统计的目录
    32. :param outfile:需要输出到的txt文本
    33. :return:
    34. """
    35. nameExtensons = ".lib" #若要支持多种后缀统计,可以空格隔开,再加其它后缀名
    36. file = open(outfile,"w")
    37. if not file:
    38. print("cannot open the fule %s" % outfile)
    39. ListFilesToTxt(Currentdir, file, nameExtensons, 1, isDebug)
    40. file.close()
    41. dir = "C:\\Program Files\\PCL 1.12.1\\3rdParty\\VTK\\lib"
    42. debug_txt = "D:\\vtk.txt"
    43. Read(dir, debug_txt, isDebug=True)

    博主又实现了一遍该功能(这里是从txt中读入vtk的数据,然后显示),效果如下:

    代码链接如下:

    链接:https://pan.baidu.com/s/1EE9_CciwuPutpKxPGomoHg 
    提取码:lqge 

    所用的txt(点云数据)见如下链接

    链接:https://pan.baidu.com/s/1vdtqDN_rDSSxy4hUG13jjw 
    提取码:3gjk 
     

     MFC界面上如何显示2D图像可以参考博主之前博客

    vs2017配置opencv4.2及QTcreator配置opencv4.2在界面显示图像_竹叶青lvye的博客-CSDN博客_qtcreator配置opencv

    二. QT环境下在界面显示vtk数据或者pcl数据

    1. QT的安装见前面博客

    VS2019配置Qt5.14.2以及在线配置Qt5.15.2_竹叶青lvye的博客-CSDN博客_vs2019对应qt多少

    注意: 9.1版本的VTK,在cmake时,已经没有博主前博客中所说的选项

    VS2017、QT5.12.1环境下的VTK8.0编译过程记录_竹叶青lvye的博客-CSDN博客

     上面的是vtk8.0的选项,如下是9.1的

     对比看,已经没有了Qt5UiPlugin_DIR和VTK_BUILD_QT_DESIGNER_PLUGIN两个选项,也就没办法生成QVTKWidgetPlugin.dll

    2. 可按照如下方法来配置

    在VS2019中新建一个QT工程,在ui界面上添加Widget控件, 完毕后进行提升

     出来的对话框如下

     这里上面的提升的类名称不是随意取的,前面博客编译好的vtk9.1版本中是含有该文件的,vtk的发布者已经实现了该类,我们只是用一下而已。

     完毕后给工程引用下vtk相关的头文件和lib库。完毕后编译,成功。

     然后再继续完善界面和内容,这里在QT界面上显示了下vtk图形(从txt文本中读入数据),显示效果如下:

     这里上传下测试所用的QT工程,所用txt文件可从上面链接获取

    链接:https://pan.baidu.com/s/1pUqkJAoaRAzyMr1-TWd7oQ 
    提取码:i01q 
     

    3.这边又做了一个VS QT界面上如何显示pcl点云的工程,可参考博主之前博客

    QT界面上显示pcl点云数据_竹叶青lvye的博客-CSDN博客_qt显示点云数据

     博客当时所用的是vtk8.0版本,提供QVTKWidget控件,而这篇博客使用的是vtk 9.1版本,上面第2点已经介绍了如何实现该控件的功能,这里不在赘叙,直接贴上自己实现的工程的链接。(管理员权限运行,显示效果如下)

    链接:https://pan.baidu.com/s/1vx2B_UWARZkUXeQiCmEa0w 
    提取码:zd2v 

    若拿QTCreator作为QT的编译环境,在界面上显示点云,博主这边就不再回顾了,大同小异,自己可结合博主之前博客发挥。(这篇博客其实就已经用了提升Widget的方法,并不需要QVTKWidgetPlugin.dll)

    QTcreator界面上显示pcl点云数据_竹叶青lvye的博客-CSDN博客_qt点云

    QT界面上如何显示图片,这边也不再回顾,可参考博主之前博客

    vs2017配置opencv4.2及QTcreator配置opencv4.2在界面显示图像_竹叶青lvye的博客-CSDN博客_qtcreator配置opencv

    三. Python环境下在界面上显示vtk数据或者pcl数据

    pyqt5做界面的方式,以及如何在pyqt界面显示open3D点云,plc点云,2D图像参考博主之前博客,这里不再赘叙。

    pycharm配置PyQt5、Open3D、Python-pcl_竹叶青lvye的博客-CSDN博客_pycharm配置pcl

    PyQt界面上显示2D图及3D点云_竹叶青lvye的博客-CSDN博客_pyqt 点云

  • 相关阅读:
    大模型:机器学习的崭新时代
    k8s怎么监听资源的变更
    带你了解函数式接口编程::是什么?
    【K8s入门必看】第二篇 —— 快速部署集群指南
    LRU算法
    面试算法36:后缀表达式
    监控直流防雷浪涌保护器综合方案
    算法、语言混编、分布式锁与分布式ID、IO模型
    gem5 & GPGPU-Sim 安装踩坑笔记
    速卖通数据分析怎么看?速卖通数据分析工具有哪些?—站斧浏览器
  • 原文地址:https://blog.csdn.net/jiugeshao/article/details/127679901
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号