PCL点云之旅06 - 点云背景颜色设置

271 阅读1分钟

实现效果

image.png

image.png

步骤拆分

  1. 创建一个弹窗,这个弹窗能够选择颜色,并且返回QColor
  2. 将颜色添加到vtk画布上面去

代码实现

  • 定义弹窗头文件
#ifndef PCL_VIEW_SELECT_COLOR_H
#define PCL_VIEW_SELECT_COLOR_H

#include <QWidget>

class pcl_view_select_color : public QWidget
{
    Q_OBJECT

public:
    pcl_view_select_color();

    ~pcl_view_select_color();

    void setColor(const QColor &c)
    {
        if(c.isValid())
        {
            color=c;
        }

    }
    QColor getColor()
    {
        return color;
    }

private:

    QColor color;


};

#endif // PCL_VIEW_SELECT_COLOR_H
  • 创建颜色弹窗
#include "pcl_viewer_color_picker.h"
#include <QHBoxLayout>
#include <qcolordialog.h>

pcl_view_select_color::pcl_view_select_color()
{
    QColor c=QColorDialog::getColor(Qt::white, this);

    if(c.isValid())
    {
        color=c;
    }
    else
    {
        c.setRgb(143,153,159,255);
        color=c;
    }
}

pcl_view_select_color::~pcl_view_select_color()
{
}

  • 槽函数
void MainWindow::background_change(){
    dialog_color_select =new pcl_view_select_color();
    QColor color=dialog_color_select->getColor();
    viewer->setBackgroundColor(color.redF(),color.greenF(),color.blueF());

    return ;
}