QT中QVTKWidget显示pcd点云文件

接上文配置成功后显示一个pcd文件的代码及效果

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_mainwindow.h"
#include <vtkRenderWindow.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>

#include <stdlib.h>
#include <memory.h>
#include <stdio.h>
#include <QTimer>
#include <vector>

class mainwindow : public QMainWindow
{
    Q_OBJECT

public:
    mainwindow(QWidget *parent = Q_NULLPTR);
	~mainwindow();

private:
    Ui::mainwindowClass ui;
	pcl::visualization::PCLVisualizer::Ptr viewer;
	void on_openButton_clicked();//定义槽函数
};
#include "mainwindow.h"
#include <QPushButton>
#include <QLineEdit>

mainwindow::mainwindow(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
	viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
	ui.widget_3->SetRenderWindow(viewer->getRenderWindow());
	viewer->setupInteractor(ui.widget_3->GetInteractor(), ui.widget_3->GetRenderWindow());
	ui.widget_3->update();
	connect(ui.pushButton, &QPushButton::clicked, this, &mainwindow::on_openButton_clicked);
}

mainwindow::~mainwindow()
{
}

void mainwindow::on_openButton_clicked()
{
	//加载pcd文件
	pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPoints(new pcl::PointCloud<pcl::PointXYZ>);
	pcl::io::loadPCDFile("rabbit.pcd", *cloudPoints);
	//移除窗口点云
	viewer->removeAllPointClouds();
	//点云设置
	//设置点云颜色
	pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud_color(cloudPoints, 255, 255, 255);
	//点云颜色渲染	
	viewer->addPointCloud(cloudPoints, cloud_color, "cloud");
	//设置点云大小
	viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "cloud");
	viewer->resetCamera();
	ui.widget_3->update();
}

运行结果

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值