Windows采用VS2019实现Open3D的C++应用

embedded/2024/9/24 20:21:15/

1、参考链接

    https://blog.csdn.net/qq_31254435/article/details/137799739

    但是,我的方法和上述链接不大一样,我是采用VS2019进行编译的,方便在Windows平台上验证各种算法。

2、创建一个VS2019的C++ Console工程

#include <iostream>

#include <open3d/Open3D.h>

int main() {

    using namespace open3d::geometry;

    auto sphere = TriangleMesh::CreateSphere(1.0, 4);

    sphere->ComputeVertexNormals();

    sphere->PaintUniformColor({ 1, 0.706, 0 });

    std::cout << sphere->vertices_.size() << " vertices\n";

    std::cout << sphere->triangles_.size() << " triangles\n";

    open3d::visualization::DrawGeometries({ sphere });

}

Include目录:

库目录:

3、将Open3D.dll放入到系统的Path当中

4、运行效果

5、载入一个PLY文件显示

#include <iostream>

#include <open3d/Open3D.h>

int main()

{

    std::string file_path = "E:\\PDAL\\PDAL\\bin\\t2.ply";

    // 创建 PointCloud 对象  

    open3d::geometry::PointCloud point_cloud;

    // 创建读取选项(可以根据需要添加参数)  

    open3d::io::ReadPointCloudOption params;

    // 读取 PLY 文件  

    if (!open3d::io::ReadPointCloudFromPLY(file_path, point_cloud, params)) {

        std::cerr << "Failed to load PLY file: " << file_path << std::endl;

        return 1;

    }

    // 对点云进行法线估计  

    point_cloud.EstimateNormals(open3d::geometry::KDTreeSearchParamHybrid(0.1, 30));

    // 缩放点云  

    double scale_factor = 10.0; // 调整此因子以改变点云大小  

    for (auto& point : point_cloud.points_) {

        point = point * scale_factor;

    }

    // 创建可视化窗口  

    open3d::visualization::Visualizer visualizer;

    visualizer.CreateVisualizerWindow("Point Cloud from PLY", 1024, 768);

    // 使用 std::make_shared 将 PointCloud 转换为 std::shared_ptr  

    visualizer.AddGeometry(std::make_shared<const open3d::geometry::PointCloud>(point_cloud));

    visualizer.Run();

    visualizer.DestroyVisualizerWindow();

    return 0;

}

(愿意点赞和收藏的小伙伴,不妨关注我,我正在寻求涨粉)


http://www.ppmy.cn/embedded/97174.html

相关文章

EmguCV学习笔记 VB.Net 3.1 直线

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 教程VB.net版本请访问&#xff1a;EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问&#xff1a;EmguCV学习笔记 C# 目录-CSD…

RabbitMQ实现多线程处理接收消息

前言&#xff1a;在使用RabbitListener注解来指定消费方法的时候&#xff0c;默认情况是单线程去监听队列&#xff0c;但是这个如果在高并发的场景中会出现很多个任务&#xff0c;但是每次只消费一个消息&#xff0c;就会很缓慢。单线程处理消息容易引起消息处理缓慢&#xff0…

设计模式系列:策略模式的设计与实践

一、背景 策略模式&#xff08;Strategy Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 二、结构 策略模式主要包含三个角色&…

Python版《超级玛丽+源码》-Python制作超级玛丽游戏

小时候最喜欢玩的小游戏就是超级玛丽了&#xff0c;有刺激有又技巧&#xff0c;通关真的很难&#xff0c;救下小公主还被抓走了&#xff0c;唉&#xff0c;心累&#xff0c;最后还是硬着头皮继续闯&#xff0c;终于要通关了&#xff0c;之后再玩还是没有那么容易&#xff0c;哈…

宠物空气净化器推荐买吗?清除浮毛的效果好吗

家里养了两只哈基米&#xff0c;它们每天的日常就是早上跑酷、中午跑酷、晚上还在跑酷&#xff0c;有时候看着很好玩&#xff0c;每天都活蹦乱跳的&#xff0c;这在说明它们很健康&#xff0c;我把它们养得很好&#xff0c;所以原谅它们经常跑跑跳跳得行为&#xff0c;虽然会把…

docker入门教程

1.docker基础命令 在我们学习具体的命令之前&#xff0c;我们先要注册一个docker的账号 https://www.docker.com/&#xff08;进入网址即可注册&#xff09; 镜像仓库命令 下面是使用实战 docker login 关键参数 &#xffee; -u : 登陆的用户名 &#xffee; -p : 登…

axios二次封装

前面已经了解了axios&#xff08;https://blog.csdn.net/weixin_51416826/article/details/139284050&#xff09;&#xff0c;那么在项目中又该如何使用axios来对接后台呢&#xff1f; 在 Vue 中对 Axios 进行二次封装是一种常见的做法&#xff0c;这样可以简化应用中的 HTTP…

[机器学习]全景指南:从基础概念到实战流程的全面解析

文章目录 1.引言1.1机器学习的重要性1.2机器学习的应用范围1.3本文的内容结构 2. 机器学习的基本概念与分类2.1 机器学习的定义2.2 机器学习的分类 4. 强化学习&#xff08;Reinforcement Learning&#xff09; 3. 机器学习的工作流程3.1 数据收集与准备1. 数据源与类型2. 数据…