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库名列表,可用如下脚本提取:

# author:"jiugeshao"
# data:2022/9/3 2:16


import os
def ListFilesToTxt(Currentdir, outfile, nameExtentisons, isIncludeSubDir, isDebug):
    """
    :param Currentdir: 需要统计的目录
    :param outfile: 需要输出到的txt文件
    :param nameExtentisons: 后缀列表
    :param isIncludeSubDir: 是否需要统计子目录
    :return:
    """
    exts = nameExtentisons.split(" ")
    files = os.listdir(Currentdir)
    for name in files:
        fullname = os.path.join(Currentdir, name)
        if (os.path.isdir(fullname) & isIncludeSubDir):
            ListFilesToTxt(fullname, outfile, nameExtentisons, isIncludeSubDir, isDebug)
        else:
            for ext in exts:
                if (name.endswith(ext)):
                    if(isDebug == True):
                        if("gd" in name or "d.lib" in name):
                            outfile.write(name + "\n")
                            break
                    else:
                        if("gd" not in name or "d.lib" in name):
                            outfile.write(name + "\n")
                            break



def Read(Currentdir, outfile, isDebug):
    """
    :param Currentdir:需要统计的目录
    :param outfile:需要输出到的txt文本
    :return:
    """
    nameExtensons = ".lib"  #若要支持多种后缀统计,可以空格隔开,再加其它后缀名
    file = open(outfile,"w")
    if not file:
        print("cannot open the fule %s" % outfile)

    ListFilesToTxt(Currentdir, file, nameExtensons, 1, isDebug)

    file.close()


dir = "C:\\Program Files\\PCL 1.12.1\\3rdParty\\VTK\\lib"

debug_txt = "D:\\vtk.txt"

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 点云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹叶青lvye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值