vs2019 基于pcl和opencv的体积检测算法 zed版本+安卓端新手版(一)

2023-10-10 04:10

本文主要是介绍vs2019 基于pcl和opencv的体积检测算法 zed版本+安卓端新手版(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vs2019 基于pcl和opencv的体积检测算法 zed版本+安卓端新手版(一)

  • 写在前面的话
  • 配置
  • 环境配置
  • 代码

写在前面的话

最近的一个小项目,图像方面的算法开发,题目是:深度相机体积测量算法,最终目标是用在安卓端做体积测量,给快递公司用。体积检测算法的源码是参考PointCloudVolumeMeasure的,使用俯拍的方式进行得到物体的长宽高进行估计的,所以如果是测没有长宽高的物体可能目前还做不到,看了很多的论文,因为要求比较快,所以直接拿了网上的代码作为参考。

如果有时间的话也可以用很多别的方法:比方 Potato volume measurement based on RGB-D camera,这是一种从两面投影的体积积分算法,要两台深度相机和比较大的场所,精度比这个高;
还有 Volume measurement with a consumer depth camera based on structured infrared lightFood Volume Estimation for Quantifying Dietary Intake with a Wearable Camera 是用slam三维重构的方法,需要平台,算法比较复杂;
还有VOLUMNECT - Measuring Volumes with Kinect用Harris探测器计算多个相交平面计算长宽高的方法,可以在任意角度拍摄计算体积,不过精度就一般般。
在这里就不多说了,进入正题。

配置

系统:Win10
CPU:i7-8700
显卡:GTX1650(显存4G,好像最后也没用GPU算啥,还是写出来吧)
内存:16G

环境配置

PCL
第一次用c++,全蒙呀,只要硬着头皮上了,少啥装啥,用pcl算肯定要配置pcl(废话),参考网址VS2017配置PCL1.9(win10环境) (为啥不找vs2019,因为太新没教程。。。还有,19和17都使用v141平台工具集,凑活儿参考。。),pcl依赖的库在安装时候大多都安装好了,配置好环境变量就行。

OPENCV
pcl可以完成很多的图像处理功能,但是一般机器视觉很多关于图像预处理方面的功能还是要用opencv,所以配置一下吧,参考网址windows 下OpenCV的安装部署详细教程,release、debug版本不要弄错。

ZED
由于我使用zed相机做的pc端开发,所以要配置一下zed,参考网址zed双目相机的windows配置,zed摄像头用的时候一定要用到GPU,所以把CUDA装一下,我装的10.0,参考网址CUDA10安装,配合使用VS2017。

cmake-gui
安装它主要是因为zed本身带有对pcl的接口,可以直接用cmake-gui创建对应的c++工程(配置好的环境),cmake-gui的cmakelist路径在(ZED/ZED SDK/samples/interfaces/pcl),Configure(1)然后Generate(2)一下,可能会遇到一些错,大部分都是路径没配置好导致的可以打开Grouped(3)、Advanced(4)查看一下,在列表里把路径写错的改好,少啥再装装。(我这个是最近配置tf的,路径没有参考价值哈)
在这里插入图片描述

代码

体积检测算法的源码是参考PointCloudVolumeMeasure,但是这个代码是使用kinect双目摄像头检测的,输入不一样,源码是用pcl中XYZ的深度点进行计算的,但是ZED大多数的例子都是用Point-XYZ-RGB的输入格式,所以多数的输入参考代码都用不上,最后查到了一个github(万能的github)的例子是ZED输入转化为Point-XYZ的输入格式。参考网址:euclidean-clustering-pcl-zed(谢谢git爸爸救我),由于有这个项目目前可能还要用,我这边的源码不能贴出来抱歉,最后把opencv配置好,应该就能跑了。pcl显示出来的窗口可能是大块的红绿,不用担心,用鼠标滚轮滚一下就可以了。

下面,上图:测的还是挺准的

(忽略我就是这么拿着摄像头测的。。。)

手持拍照设备
结果

换个角度看看
第一次写博客,还是想养成一个习惯,把自己做的东西慢慢的都记下来,不是为了炫耀或者吹嘘,是真的希望能给和我一样遇到困难的人一些帮助,写的不好的地方多多海涵,这个项目ZED开发完大概花了我两周的时间,精度在做均值平滑以后5%以内,算蒙混过关,后面等有时间慢慢把往安卓端移植的工作写上来。

附上一些编程调试过程中有帮助或者不错的参考网址:
pcl常用小知识和几何计算
3维Harris角点提取pcl实现
PCL几种采样方法
PCL+OpenCV+WebCam实现模拟深度图像实时点云数据采集
PCL学习笔记
PCL中访问点云数据点的几种方式
PCL代码经典赏析七:PCL 点云特征描述与提取
PCL系列之——点云读取与显示
有任何不明白的问题的可以在下面问我,有空的话会第一时间解答哒~

这篇关于vs2019 基于pcl和opencv的体积检测算法 zed版本+安卓端新手版(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177837

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

使用Python实现一个简易计算器的新手指南

《使用Python实现一个简易计算器的新手指南》计算器是编程入门的经典项目,它涵盖了变量、输入输出、条件判断等核心编程概念,通过这个小项目,可以快速掌握Python的基础语法,并为后续更复杂的项目打下... 目录准备工作基础概念解析分步实现计算器第一步:获取用户输入第二步:实现基本运算第三步:显示计算结果进

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

基于Python实现温度单位转换器(新手版)

《基于Python实现温度单位转换器(新手版)》这篇文章主要为大家详细介绍了如何基于Python实现温度单位转换器,主要是将摄氏温度(C)和华氏温度(F)相互转换,下面小编就来和大家简单介绍一下吧... 目录为什么选择温度转换器作为第一个项目项目概述所需基础知识实现步骤详解1. 温度转换公式2. 用户输入处

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt