CGAL表面网格降采样

  • 1. CGAL Surface_mesh_simplification模块
  • 2. 源为stl格式数据

1. CGAL Surface_mesh_simplification模块

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Surface_mesh.h>#include <CGAL/Surface_mesh_simplification/edge_collapse.h>
#include <CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h>#include <chrono>
#include <fstream>
#include <iostream>typedef CGAL::Simple_cartesian<double>               Kernel;
typedef Kernel::Point_3                              Point_3;
typedef CGAL::Surface_mesh<Point_3>                  Surface_mesh;namespace SMS = CGAL::Surface_mesh_simplification;int main(int argc, char** argv)
{Surface_mesh surface_mesh;const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cube-meshed.off");std::ifstream is(filename);if(!is || !(is >> surface_mesh)){std::cerr << "Failed to read input mesh: " << filename << std::endl;return EXIT_FAILURE;}if(!CGAL::is_triangle_mesh(surface_mesh)){std::cerr << "Input geometry is not triangulated." << std::endl;return EXIT_FAILURE;}std::chrono::steady_clock::time_point start_time = std::chrono::steady_clock::now();// In this example, the simplification stops when the number of undirected edges// drops below 10% of the initial countdouble stop_ratio = (argc > 2) ? std::stod(argv[2]) : 0.1;SMS::Count_ratio_stop_predicate<Surface_mesh> stop(stop_ratio);int r = SMS::edge_collapse(surface_mesh, stop);std::chrono::steady_clock::time_point end_time = std::chrono::steady_clock::now();std::cout << "\nFinished!\n" << r << " edges removed.\n" << surface_mesh.number_of_edges() << " final edges.\n";std::cout << "Time elapsed: " << std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time).count() << "ms" << std::endl;CGAL::IO::write_polygon_mesh((argc > 3) ? argv[3] : "out.off", surface_mesh, CGAL::parameters::stream_precision(17));return EXIT_SUCCESS;
}


2. 源为stl格式数据

  Surface_mesh surface_mesh;const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cube-meshed.off");std::ifstream is(filename);if(!is || !(is >> surface_mesh)){std::cerr << "Failed to read input mesh: " << filename << std::endl;return EXIT_FAILURE;}

改为如下:

  Surface_mesh surface_mesh;const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("xxx.stl");CGAL::IO::read_polygon_mesh(filename, surface_mesh);


CGAL表面网格降采样相关推荐

  1. CGAL学习记录——降采样

    下采样滤波 层次化下采样 参数设置: 代码: WLOP 下采样 参数: 效果: 代码: 层次化下采样 参数设置: 代码: #include <CGAL/Exact_predicates_inex ...

  2. 上采样,重采样和下采样,降采样

    一.上采样(重采样) 1.上采样就是重采样也就是放大图像,通常使用的目的是 (1)使图片达到更高的分辨率 (2)再经过pooling后上采样可以放大信息,循环迭代可以不断增强有用信息 2. 上采样原理 ...

  3. PCL体素化降采样 实现立方体体素可视化

    PCL体素化降采样 实现立方体体素可视化 PCL库函数自带的VoxelGrid类能够实现对点云进行降采样.基本原理是对点云进行网格划分,落在每个小立方块区域中的点的重心就代表网格中的所有点.因此通过控 ...

  4. 点云降采样(DownSampling)

    点云降采样 1 概述 三维点云往往包含大量冗余数据,直接处理计算量大,消耗时间长,因此对其进行降采样是十分必要的.降采样同时也是点云预处理过程中的关键环节. 2 常用方法 2.1 体素网格下采样 2. ...

  5. pcl 中的滤波与降采样

    目录 pcl filter模块 RandomSample UniformSampling VoxelGrid StatisticalOutlierRemoval filter 应用 参考 完 pcl ...

  6. matlab 降采样代码,matlab 点云降采样 pcdownsample()

    ** 点云数据降采样 pcdownsample() ** pcdownsample降采样减少点云数据量: 一.语法: ptCloudOut = pcdownsample(ptCloudIn, 'ran ...

  7. ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文介绍的是ECCV 2020 Oral论文<Inverti ...

  8. VTK修炼之道30:图像重采样_降采样和升采样技术

    1.VTK中的图像重采样实现 图像重采样是指对采样后形成的由离散数据组成的数字图像按所需的像元位置或像元问距重新采样,以构成几何变换后的新图像.重采样过程本质上是图像恢复过程,它用输入的离散数字图像重 ...

  9. Verilog功能模块——降采样

    一. 模块功能与应用场景 模块功能:对输入信号进行降采样. 应用场景: 输入数据量太大,后级难以处理,需要减小信号量而不丢失关键信息 二. 模块框图与使用说明 参数DOWN_SAMPLING_TIME ...

最新文章

  1. 阿里、百度、字节跳动、京东、地平线等计算机视觉实习生面试经历分析,已成功上岸!...
  2. python使用np.argsort对一维numpy概率值数据排序获取倒序索引、获取的top索引(例如top2、top5、top10)索引二维numpy数组中对应的原始数据:原始数据概率最大的头部数据
  3. tomcat 部署:直接访问域名访问项目
  4. python优先队列_python实现最大优先队列
  5. mysql5.5开启binlog_MySQL开启binlog方法
  6. java 右键事件_java table右键点击事件
  7. Spring Boot 对CORS跨域访问的配置
  8. Java二叉搜索树转循环链表,关于java:二叉搜索树转换为单向链表interview1712
  9. jQuery学习-显示与隐藏
  10. 余额宝技术架构及演进
  11. java 注解开发 解耦_Android java 解耦框架注解Dagger2
  12. unity 凸包算法
  13. Linux下的经典软件(史上最全)
  14. Adobe LiveCycle Designer 报表设计器
  15. 海康威视4200服务器显示资源不足,硬盘录像机提示“资源不足”是什么原因 -
  16. 图书馆图书借阅登记微信小程序开发制作管理软件系统
  17. 被宋美龄封杀的民国绝色女星
  18. 流年里写给30岁的自己
  19. 最快零基础上手——latex文档标题、一级标题、二级标题、内容搭建
  20. 什么是类?以及类的分类

热门文章

  1. MacBook苹果笔记本M芯片功耗测试软件Asitop
  2. 会PHP如何拥有一个自己的QQ机器人?(三)
  3. 特效在编辑器界面运行但是发布就消失的问题
  4. ubuntu boost运行./bootstrap.sh后出现Failed to build B2 build engine
  5. 微信转账2020假图片_中老年早上好表情包:2020最新早上好图片大全 微信最美鲜花早上好...
  6. Maxon将在Siggraph 2019公布下一代Cinema 4D RELEASE 21
  7. uniApp请确认自定义基座的iOS证书已添加iOS设备的UDID
  8. Linux下xmapp安装
  9. yml配置oracle连接,springboot yml 文件配置oracle,提示账号密码错误
  10. arm平台linux的ethtool配置,ARM-Linux驱动--DM9000网卡驱动分析(四)