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

PCL setCameraPosition 参数讲解

       

setCameraPosition 的原型如下void setCameraPosition (double pos_x, double pos_y, double pos_z,double view_x, double view_y, double view_z,double up_x, double up_y, double up_z, int viewport = 0);pos_x pos_y pos_z为相机所在的位置view_x view_y  view_z 是焦点所在的位置up_x  up_y  up_z 的那个坐标轴朝上,若朝上则为1,若朝下为-1

cloudcompare 中正视的的坐标显示如下图,Z轴朝上(up_x=0 up_y=0 up_z=1)而Y轴背离 所以相机位置 pos_y为负值.

如果坐标系看起来不直观,建议拿个盒子画好正视的坐标系 .

以下是切换自动计算相机位置、焦点位置、相机朝向的计算函数

#define    PCL_FACEVIEW      1  //正视
#define    PCL_DOWNVIEW      2  //仰视
#define    PCL_LEFTVIEW      3  //左视
#define    PCL_RIGHTVIEW     4  //右视
#define    PCL_TOPVIEW       5  //俯视
#define    PCL_BACKVIEW      6  //后视void getCameraParam(int viewPos,PointT minIn,PointT maxIn,PointT &cameraPosOut,PointT &focusPosOut,PointT &upPosOut){switch (viewPos) {case PCL_FACEVIEW     : //OK{focusPosOut.x=0;focusPosOut.y=0;focusPosOut.z=0;cameraPosOut.x=0;cameraPosOut.y=-300;cameraPosOut.z=0;upPosOut.x=0;upPosOut.y=0;upPosOut.z=1;}break;case PCL_DOWNVIEW     :   //OK{focusPosOut.x=0;focusPosOut.y=0;focusPosOut.z=0;cameraPosOut.x=0;cameraPosOut.y=0;cameraPosOut.z=-300;upPosOut.x=0;upPosOut.y=1;upPosOut.z=0;}break;case PCL_LEFTVIEW     :  //OK{focusPosOut.x=0;focusPosOut.y=0;focusPosOut.z=0;cameraPosOut.x=-300.0;cameraPosOut.y=0;cameraPosOut.z=0;upPosOut.x=0;upPosOut.y=0;upPosOut.z=1;}break;case PCL_RIGHTVIEW    :  //OK{focusPosOut.x=0;focusPosOut.y=0;focusPosOut.z=0;cameraPosOut.x=300;cameraPosOut.y=0;cameraPosOut.z=0;upPosOut.x=0;upPosOut.y=0;upPosOut.z=1;}break;case     PCL_TOPVIEW: //OK{focusPosOut.x=0;focusPosOut.y=0;focusPosOut.z=0;cameraPosOut.x=0;cameraPosOut.y=0;cameraPosOut.z=300;upPosOut.x=0;upPosOut.y=1;upPosOut.z=0;}break;case     PCL_BACKVIEW:    //OK{focusPosOut.x=0;focusPosOut.y=0;focusPosOut.z=0;cameraPosOut.x=0;cameraPosOut.y=300.0;cameraPosOut.z=0;upPosOut.x=0;upPosOut.y=0;upPosOut.z=1.0;}break;}}

相关文章:

PCL setCameraPosition 参数讲解

setCameraPosition 的原型如下void setCameraPosition (double pos_x, double pos_y, double pos_z,double view_x, double view_y, double view_z,double up_x, double up_y, double up_z, int viewport 0);pos_x pos_y pos_z为相机所在的位置view_x view_y view_z 是焦点所…...

有关YOLOV5在测试时,图片大小被调整的问题

执行detect.py文件,在运行栏中出现以下: detect: weightsyolov5s.pt, sourcedata\images, datadata\coco128.yaml, imgsz[640, 640], conf_thres0.25, iou_thres0.45, max_det1000, device, view_imgFalse, save_txtFalse, save_confFalse, save_cropFa…...

【机器学习】四、计算学习理论

1 基础知识 计算学习理论(computational learning theory):关于通过“计算”来进行“学习”的理论,即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法体统理论保证,并根据结…...

spring解决后端显示时区的问题

spring解决后端显示时区的问题 出现的问题: 数据库中的数据: 解决方法 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: Asia/Shanghai...

大模型冷思考:企业“可控”价值创造空间还有多少?

文 | 智能相对论 作者 | 叶远风 毫无疑问,大模型热潮正一浪高过一浪。 在发展进程上,从最开始的技术比拼到现在已开始全面强调商业价值变现,百度、科大讯飞等厂商都喊出类似“不能落地的大模型没有意义”等口号。 在模型类型上&#xff0…...

ctfshow-web入门37-52

include($c);表达式包含并运行指定文件。 使用data伪协议 ?cdata://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg 是<?php system(cat flag.php);?> base64加密 源代码查看得到flag 38 多禁用了ph…...

前端项目部署后,需要刷新页面才能看到更新内容

问题背景 前端项目部署更新后&#xff0c;通知业务验证&#xff0c;业务点击收藏的标签&#xff0c;打开网页后没有看到修改的内容&#xff0c;每次都需要手动刷新&#xff0c;用户体验非常不好。 问题原因&#xff1a;缓存未过期&#xff0c;浏览器直接读取本地缓存&#xf…...

android 13 write javaBean error at *** 错误

报错代码&#xff1a;红框处。 注意&#xff1a;android10 不会报错&#xff0c;运行正常。android13就报错 错误原因&#xff1a;对象中VerifyDownloadEntity&#xff0c;有个Bitmap成员变量 public class VerifyDownloadEntity {private Bitmap bitmap;private String cooki…...

Only fullscreen opaque activities can request orientation

出现Only fullscreen opaque activities can request orientation是谷歌爸爸在安卓8.0版本时为了支持全面屏&#xff0c;增加了一个限制&#xff1a;如果是透明的Activity&#xff0c;则不能固定它的方向&#xff0c;因为它的方向其实是依赖其父Activity的&#xff08;因为透明…...

前端实验(一)单页面应用的创建

实验目的 掌握使用vite创建vue3单页面程序命令熟悉所创建程序的组织结构熟悉单页面程序运行原理能够编写简单的单页面程序 实验内容 创建一个名为vue-demo的单页面程序编写简单的单页面程序页面运行单页面程序 实验步骤 使用vite创建单页面程序 创建项目名为目录vue-demo的…...

数字人小灿:始于火山语音,发于 B 端百业

火爆的数字人市场又有新消息来袭&#xff1a;火山语音的数字人小灿来了&#xff01; 数字人小灿首曝视频 今年以来&#xff0c;在生成式AI浪潮的助推下&#xff0c;大量企业争相布局数字人赛道。市场之所以如此火热&#xff0c;是因为AI数字人已被视为人工智能时代智能交互的入…...

蓝桥杯刷题

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; &#x1f449;&#x1f3fb;最大降雨量 原题链接&#xff1…...

Go Metrics SDK Tag 校验性能优化实践

背景 Metrics SDK 是与字节内场时序数据库 ByteTSD 配套的用户指标打点 SDK&#xff0c;在字节内数十万服务中集成&#xff0c;应用广泛&#xff0c;因此 SDK 的性能优化是个重要和持续性的话题。本文主要以 Go Metrics SDK 为例&#xff0c;讲述对打点 API 的 hot-path 优化的…...

二叉树问题——前/中/后/层遍历问题(递归与栈)

摘要 博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法 一、前/中/后/层遍历问题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 102. 二叉树的层序遍历 103. 二叉树的锯齿形层序遍历 二、二叉树遍历递归解析 // 前序遍历递归LC144_二叉树的前…...

Vue3问题:如何实现级联菜单的数据懒加载?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约3100字&#xff0c;整篇阅读大约需要5分钟。 本文主要内容分三部分&#xff0c;第一部分是需求分析&#xff0c;第二部分是实现步骤&#xff0c;第三部分是问题详解。 …...

STM32-电源管理(实现低功耗)

电源管理 STM32 HAL库对电源管理提供了完善的函数和命令。 工作模式&#xff08;高功耗->低功耗&#xff09;&#xff1a;运行、睡眠、停止、待机。 若备份域电源正常供电&#xff0c;备份域内的RTC都可以正常运行&#xff0c;备份域内的寄存器的数据会被保存&#xff0c;不…...

vue 自己捣鼓周日程日历组件

需求:想要一个周日程表,记录每天的计划,点击可查看详情。可自定义时间段通过后台获取时间段显示 分析: 通过需求,超级课程表app这款软件其中课表和这个需求很像,只不过这个需求第一列的时间段是自定义的,不是上午下午两个,但是原理都差不多 原本想找一些第三方插件使…...

【力扣】2127. (分类讨论 + 拓扑排序)参加会议的最多员工数

【力扣】2127. &#xff08;分类讨论 拓扑排序&#xff09;参加会议的最多员工数 文章目录 【力扣】2127. &#xff08;分类讨论 拓扑排序&#xff09;参加会议的最多员工数1. 题目介绍2. 思路&#xff08;**分类讨论 拓扑排序**&#xff09;3. 解题代码4. Danger参考 1. 题…...

Flutter——最详细(Map)使用教程

Map简介 键值对的集合&#xff0c;您可以使用其关联的键从中检索值。 普通的 HashMap是无序的&#xff08;不保证顺序&#xff09;&#xff0c;LinkedHashMap 按键插入顺序迭代&#xff0c;而像 SplayTreeMap 这样的排序映射按排序顺序迭代键。 1&#xff0c;添加元素 addEntri…...

vue的入门第一课

Vue.js是一款流行的JavaScript框架&#xff0c;用于构建交互式Web应用程序。本文将详细介绍Vue.js的基础知识&#xff0c;包括Vue.js的历史、设计模式、构造函数参数、el、data、computed、method、watch以及差值的使用。 Vue.js是什么&#xff1f; Vue.js是一款用于构建用户…...

手把手教你:把Ubuntu 20.04完整系统塞进U盘,打造随身便携开发环境

手把手打造Ubuntu 20.04便携开发环境&#xff1a;从镜像制作到硬件兼容全指南 在咖啡厅调试代码时发现环境配置丢失&#xff1f;出差临时借用同事电脑却无法运行你的开发工具&#xff1f;这些困扰程序员多年的痛点&#xff0c;其实只需要一个装满完整Ubuntu系统的U盘就能彻底解…...

告别卡顿!深度解析麒麟V10桌面版mate-indicators与auditd内存飙升的关联与根治

麒麟V10桌面版性能优化实战&#xff1a;解决mate-indicators与auditd内存异常问题最近有不少麒麟V10桌面版用户反馈系统运行一段时间后变得异常卡顿&#xff0c;打开系统监视器查看&#xff0c;发现mate-indicators或auditd进程的内存占用居高不下&#xff0c;有时甚至达到几个…...

别再为Unity视频播放发愁了!Video Player从创建到避坑,保姆级教程带你搞定

Unity视频播放全攻略&#xff1a;从基础配置到高级避坑技巧在游戏开发中&#xff0c;视频播放功能看似简单&#xff0c;却暗藏诸多玄机。无论是开场动画、过场剧情还是UI背景&#xff0c;流畅的视频体验直接影响玩家第一印象。本文将带你深入Unity Video Player的每一个细节&am…...

Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域

Godot 4.2 2D游戏开发&#xff1a;用TileMap图层一键搞定游戏地图的可行走区域在2D游戏开发中&#xff0c;地图设计往往是最耗时的环节之一。传统方法需要开发者手动绘制碰撞体或编写复杂的导航逻辑&#xff0c;而Godot 4.2的TileMap导航层功能彻底改变了这一局面。想象一下&am…...

科技助力,具身智能体在幼儿园科技启蒙中的应用

具身机器人通过互动式学习、多感官体验和情境化教学&#xff0c;为幼儿科技启蒙提供创新支持。其应用可围绕以下方向展开&#xff1a;互动游戏设计 开发基于肢体动作的交互游戏&#xff0c;如通过机器人模仿幼儿舞蹈动作&#xff0c;激发参与兴趣。语言与逻辑训练 利用机器人讲…...

StableSR vs 传统放大算法:为什么AI超分辨率效果更好?

StableSR vs 传统放大算法&#xff1a;为什么AI超分辨率效果更好&#xff1f; 【免费下载链接】sd-webui-stablesr StableSR for Stable Diffusion WebUI - Ultra High-quality Image Upscaler 项目地址: https://gitcode.com/gh_mirrors/sd/sd-webui-stablesr StableSR…...

LightGBM分类回归保姆级教程:从鸢尾花数据集到房价预测(附Python代码)

LightGBM实战指南&#xff1a;从数据准备到模型调优全流程解析鸢尾花的花瓣在微风中轻轻摇曳&#xff0c;仿佛在诉说着数据背后的故事。作为一名数据科学从业者&#xff0c;我常常思考如何让算法更好地理解这些自然语言。LightGBM就像一位细心的园丁&#xff0c;能够从纷繁复杂…...

Unity项目降级回退的四层错误诊断与三步修复法

1. 这不是版本降级&#xff0c;是Unity项目“时空错位”的典型症状 很多人看到“unity回到低版本报错”&#xff0c;第一反应是&#xff1a;“不就是把高版本工程拖进低版本编辑器里打开嘛&#xff1f;点一下确定不就完了&#xff1f;”——我去年在接手一个外包美术团队交付的…...

Netcat (nc) 全面使用指南

Netcat 被誉为网络工具中的"瑞士军刀"&#xff0c;是一个功能强大的网络调试和诊断工具。它可以在 TCP/UDP 协议下进行连接、监听、端口扫描、文件传输和代理转发等操作。 一、安装与基本语法 1.1 安装方法 操作系统安装命令Ubuntu/Debiansudo apt install netcat…...

Redis 缓存实战案例与技术详解

Redis 缓存实战案例与技术详解 1. Redis 简介 Redis 是一种开源的内存数据存储&#xff0c;常用于缓存和消息队列。 2. 配置优化 使用 LRU 淘汰策略配置数据持久化功能 3. 实战案例 案例一&#xff1a;电商秒杀系统 架构&#xff1a;前端系统 Redis 持久化缓存特点&#xff1a…...