补充:

如果嫌编译麻烦,这里可以下载我编译好的:VTK-8.0.1,下载后直接拷贝到pcl安装目录下替换原VTK目录。


编译VTK的原因:

pcl安装版中自带的vtk缺少QVTKWidget.dll,这样在QT Designer中就无法显示点云。

工具:

cmake-3.11

pcl-1.8.1-allinone,pcl-1.8.1-pdb

vs2015

Qt5.10.1 下载地址:official_release版

vtk-8.0.1 下载地址:vtk-8.0.1

vtk历史版本下载地址

安装过程:

pcl、vs、qt的安装就不多说了,都是exe文件双击运行就行了。

之前使用的vtk-8.1.1,结果不能,所以换回了pcl-1.8.1-allinone中自带的VTK是8.0的版本

这是pcl的安装目录,在3rdParty下有自带的VTK,我们先备份VTK文件夹为VTK_copy,把编译后的VTK就放到这个新建的VTK文件夹下

cmake编译VTK步骤

1、打开cmake-gui

source code :VTK-8.1.1.zip解压后的目录

build the binaries :在VTK-8.1.1.zip解压后的目录下新建一个build目录

点击configure, 选择编译器

configure完成之后一片红,但是不用担心,因为我们还没有开始配置

勾选Grouped和Advanced,进行以下设置:

BUILD下取消勾选BUILD_TESTING,只留BUILD_SHARED_LIBS就行了

CMAKE下CMAKE_INSTALL_PREFIX设置为你新建的VTK文件夹

INSTALL下目录也替换成你新建的VTK文件夹

VTK下勾选VTK_Group_Qt,VTK_RENDERING_BACKEND设置为OpenGL(这里一定要注意,否则pcl显示框会出错)

点击Add Entry,添加CMAKE_DEBUG_POSTFIX,Value设置为-gd(用来区别debug和release版本)

再次点击configure


2018年9月5日更新:

编译vtk-8.0.1的时候,由于qt默认版本号是4,这里的5.10的qt会报错,修改为5即可

再次configure

qt5已经自动识别出来了,目录正确,无需修改,点击configure

点击generate

点击open project

2018年9月5日更新


累,又是一片红,我这里是安装anaconda35,里面似乎也有QT,但是我不确定这个QT是不是好用,所以把QT改为我自己安装的QT-5.10.1,修改QT5_DIR到自己安装的QT路径下

勾选VTK_BUILD_QT_DESIGNER_PLUGIN ,因为我就是为了这个才编译VTK的

再次config

这个警告不用管的,因为我们把OpenGL2改成OpenGL引起的 。

点击generate

点击open project,自动打开vs

首先Debug x64下,右键ALL_BUILD重新生成,再右键INSTALL设置为启动项目、重新生成;

然后Release x64下,右键ALL_BUILD重新生成,再右键INSTALL设置为启动项目、重新生成;

将3rdParty\VTK\plugins\designer下的QVTKWidgetPlugin.dll拷贝到QT5.10.1\5.10\msvc2015_64\plugins\designer下,这样Qt Designer里面就有了QVtk的控件了。

当我们使用Qt Creater作开发工具的时候,windows下qt中自带的qt creater都是32位的,这里我们把QVTKWidgetPlugin.dll拷贝到\Qt5.10.1\Tools\QtCreator\bin\plugins\designer下是没有用的,我们在使用Qt Creater时依然看不到QVTKWidget,除非我们再编一个32位release版的QVTKWidgetPlugin.dll放到\Qt5.10.1\Tools\QtCreator\bin\plugins\designer,或者装一个64位版的Qt Creater

至此PCL在windows下的环境已经搭配好了,可以选择重启让环境变量生效。


2018年9月5日补充,环境测试:

注意:

1、windows下代码写法不太一样,windows生成的ui默认是对象,linux是对象指针

linux:ui->qvtkWidget->setRenderWindow();

windows: ui.qvtkWidget->setRedderWindow();

示例:

#include "pclviewer.h"
#include <pcl\visualization\pcl_visualizer.h>
#include <pcl\point_cloud.h>
#include <pcl\point_types.h>
//vtk
#include <vtkRenderWindow.h>PCLViewer::PCLViewer(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);//初始化点云pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);//设置点云大小cloud->points.resize(200);//填充点云for (size_t i = 0; i < cloud->points.size(); ++i){cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);}//声明视窗boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));//设置视窗背景色viewer->setBackgroundColor(0, 0, 0);//预处理点云颜色pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> magenta(cloud, 255, 0, 255);//把点云加载到视窗viewer->addPointCloud(cloud, magenta, "cloud");//设置点云大小viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "cloud");//连接qvtkui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());ui.qvtkWidget->update();
}

运行结果:


补充:

如果嫌编译麻烦,这里可以下载我编译好的:VTK-8.0.1,下载后直接拷贝到pcl安装目录下替换原VTK目录。

windows下cmake编译VTK到PCL中相关推荐

  1. ncnn环境搭建一 - windows下protobuf编译安装

    1. 环境 安装环境采用visual studio 2015 + protobuf 3.4.0 + ncnn 2. visual studio 2015安装 visual studio采用的是 vs2 ...

  2. windows 下cmake的使用

    windows下使用cmake--HelloWorld  教程 step0:新建一个用来存放工程文件的文件夹 step1:用记事本或者写字板写一个"HelloWorld.cpp", ...

  3. 乐鑫esp8266学习rtos3.0笔记:如何在 windows 用 CMake 编译 ESP8266 项目。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  4. Boost在Linux和windows下的编译 32位 64位

    一 简言 1. Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一 2. Boost官网地址:http://www.boost.org/ 3. 本博客示 ...

  5. tinyxml在linux和windows下的编译及使用详解

    一:摘要 1.XML全称EXtensible Markup Language,翻译为可扩展标记语言,XML文件通常就是一个文本文件,可以使用任何编码 2.TinyXML是一个开源的C++用来处理XML ...

  6. jsoncpp在linux和windows下的编译及使用详解

    一:摘要 1. JSON是一种轻量级的数据传输格式,全称为:JavaScript Object Notation,官方网址: http://www.json.org/json-zh.html 3. J ...

  7. Windows下MinGW编译vim7.4

    学习了一段时间Vim,感觉有些功能真的很方便.因学习原因,工作平台更换到一台老式Xp电脑上,重新安装了Vim7.4.官网默认版本不支持等宽字体和GDI++渲染,需要手工编译一个修改过的版本. 1.下载 ...

  8. Agg在Windows下的编译与使用

    Agg在Windows下的编译与使用 flyfish Agg简介 AGG(Anti-Grain Geometry)是一个开源免费的图形库. 官网地址: www.antigrain.com 主要是编译称 ...

  9. linux添加windows字体文件夹里,如何把Windows下的字体添加到Linux中

    如何把Windows下的字体添加到Linux中 Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以 ...

最新文章

  1. C++ 模板:template
  2. 各个版本通道_绝地求生各个参数对画面的影响,软硬件优化帧数,拒绝做睁眼瞎...
  3. 每个人对工作都会有自己的想法
  4. matlab有趣表白程序_小人表白MATLAB代码
  5. 支持同步的php目录,php – rsync同步省略目录
  6. 使用matlab读取excel数据并保存
  7. mybatis 多租户saas_SaaS 微服务脚手架
  8. php 过滤微信符号昵称,PHP处理微信昵称特殊符号过滤的方法
  9. 【JAVA】五子棋2.0
  10. 如何导入ybc_speech语音包,来和电脑聊天吧
  11. mysql实现停车场管理系统完整代码实现_JAVA实现简单停车场系统代码
  12. 7-46 新浪微博热门话题
  13. 局域网共享打印机无反应故障
  14. mysql自愈_数据库跨地域容灾自愈最强攻略来了!
  15. 用Qt写的平均绩点计算器
  16. PKI常见证书格式和转换
  17. Scala崛起带来招聘爆发
  18. 【PHP】走进 PHP 第一课 PHP 介绍 环境安装
  19. 使用java程序将ceb文件转换为pdf文件
  20. 也谈网易“有道难题”在线解谜游戏

热门文章

  1. [NOI2014]动物园 【kmp】
  2. 001——数组(一)数组知识及foreach函数应用
  3. 《数据驱动安全:数据安全分析、可视化和仪表盘》一3.3 读入数据
  4. 我想吐槽“吐槽 Google 换新 Logo 的人”
  5. Windows下完成端口移植Linux下的epoll
  6. 揭秘ASP.NET 2.0的Eval方法(转)
  7. places for finding a consulting job
  8. bring your mac everywhere you go
  9. 屏蔽朋友圈的第一天的感悟
  10. 【转】unity3d优化总结篇