当前位置: 首页 > news >正文

青岛做教育的网站百度网页版链接地址

青岛做教育的网站,百度网页版链接地址,wordpress 建门户网站,注册公司代理电话通过摸索整理了三个方法&#xff1a; 一、方法1&#xff1a;//不推荐&#xff0c;但可以参考 1、通过pcl的compute3DCentroid()方法计算点云的中心点坐标&#xff1b; 函数原型如下&#xff1a; compute3DCentroid (const pcl::PointCloud<PointT> &cloud, Eigen…

通过摸索整理了三个方法:

一、方法1://不推荐,但可以参考

1、通过pcl的compute3DCentroid()方法计算点云的中心点坐标;

函数原型如下:

compute3DCentroid (const pcl::PointCloud<PointT> &cloud, Eigen::Vector4f &centroid);

2、通过vtk的addCoordinareSystem()在指定位置放一个坐标系;

函数原型如下:

addCoordinareSystem(double scale, float x, float y, float z,const std::string &id = "reference",int viewport = 0);

 这里的scale可以指定坐标轴的尺寸,但是点云有时候比较大,坐标轴也很大的时候会看起来很奇怪,甚至遮挡住部分点云,,所以我想把这个坐标轴放在右下角,就像cloudcompare软件中效果一样,于是此处增加:

3、通过vtk的createViewPort()新建一个窗口在右下角,然后把点云放在这个小窗口里

函数原型如下:

createViewPort (double xmin, double ymin, double xmax, double ymax, int &viewport);

此处前四个参数都表示viewer窗口中的所在位置在全图的比例,最大值为1.0;

4、完整代码如下:

#include <pcl/common/centroid.h>    //计算点云中心的头文件
//其它相关环境的头文件自行补充//初始化一个viewer
pcl::visualization::PCLVisualizer::Ptr viewer;    
//初始化一个点云
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);//加载点云文件
if(pcl::io::loadPCDFile("cloud.pcd",*cloud)==-1)
{//此处cloud.pcd是你的点云文件
}Eigen::Vector4f center;
pcl::compute3DCentroid(*cloud,center);    //计算中心点坐标,保存到centerint v1 = 0;
viewer->createViewPort(0.8,0.0,1.0,0.2,v1);    //在viewer中新建一个窗口
viewer->addCoordinateSystem(1.0,center[0],center[1],center[2],"v1",v1);    //在小窗中显示坐标轴

想法很丰满,显示很骨感,这个方法的效果并不是很好,首先一点是通过createViewPort创造的小窗背景是黑色的,不是透明的,拖动旋转大窗口的点云时可以发现小窗部分会遮住它,就像是ps里图层的概念...

二、方法2://不推荐,但可以参考

在Qt中使用vtkRenderer的窗口显示点云时,vtk有一个专用的函数添加坐标系:

#include <vtkOrientationMarkerWidget.h>viewer->addOrientationMarkerWidgetAxes(ui->widget_opengl->GetInteractor());
//这里的widget_opengl是我显示点云的窗口名称

此处窗口的创建与使用可参考另一篇博客:

http://t.csdn.cn/SpwoF

通过此方法可以最快速得到一个坐标系,背景透明的,在显示窗口的角落,但是这个坐标系是可以被鼠标拖动的,很容易误触!有兴趣的朋友可以试一下效果

不多时便找到了更好的解决办法:

三、方法3:推荐

通过自定义坐标系再加入到显示点云的窗口中,并且禁止鼠标改变坐标系窗口的位置,就可以实现和cloudcompare几乎一致的效果了

将如下代码加入到点云显示的部分即可:

(QT中通过widget组件显示点云窗口的方法参考http://t.csdn.cn/SpwoF)

#include <vtkOrientationMarkerWidget.h>
#include <vtkAxesActor.h>vtkAxesActor* axes = vtkAxesActor::New();
axes->SetPosition(0,0,0);    //坐标系的原点
axes->SetTotalLength(1,1,1);    //轴长
axes->SetShaftType(1);    //旋转轴的类型:圆柱体、线、或者自定义
axes->SetCylinderRadius(0.02);vtkOrientationMarkerWidget* widget = vtkOrientationMarkerWidget::New();
widget->SetOutlineColor(1,1,1);
widget->SetOrientationMarker(axes);
widget->SetInteractor(ui->widget_opengl->GetInteractor());//加入交互
widget->SetViewport(0.0,0.0,0.3,0.3);    //设置显示位置
widget->SetEnabled(true);
widget->SetInteractive(false);    //禁止拖动坐标系位置

http://www.mmbaike.com/news/87712.html

相关文章:

  • 网站制作一条龙网络seo软件
  • wordpress改为中文如何刷seo关键词排名
  • 专业展示设计网站seo站长论坛
  • 余姚网站建设在哪里刚刚发生了一件大事
  • 诸城网站开发关键词查找
  • 网站首页有被收录就是最近没有被抓取是怎么回事爱链网中可以进行链接买卖
  • 一个完美的网站怎么做“跨年”等关键词搜索达年内峰值
  • 有了实名制域名怎么做网站今天全国31个省疫情最新消息
  • 北仑网站建设seo查询seo
  • 制作网站客服系统搜索引擎营销优化策略有哪些
  • 没有网站怎么做cps优化方案怎么写
  • 平板怎么做网页seo 公司
  • 深圳网站建设 site网站推广公司大家好
  • 网站客服系统代码外贸网站建设推广公司
  • 阿里网站年费续费怎么做分录东莞今天最新消息新闻
  • 服务器 wordpress 邮件设置北京seo推广系统
  • 海南省住房公积金管理局网站网页模板免费html
  • 开封建网站的公司石家庄关键词优化平台
  • 给客户做网站图片侵权重庆seo教程搜索引擎优化
  • 怎么做网站自动采集数据友情链接交换平台
  • 医疗网站建设公司今天刚刚最新消息2023
  • 做针对国外的网站希爱力双效片的作用与功效
  • wordpress api 中文文档下载seo怎么优化简述
  • 做网站用什么软件初二百度关键词优化师
  • 网络工程毕设做网站谷歌推广怎么操作
  • 大学做视频网站设计参考消息今天新闻
  • 公园网站建设方案 ppt模板河南疫情最新情况
  • 海宁建设局网站广告文案经典范例200字
  • 天津平台网站建设费用国家免费技能培训
  • 微信做色情网站今日新闻头条新闻最新