自己写的点云点集凹包求解 ,不是凸包!!!(附C++代码)

2023-11-08

近期遇到一个计算几何问题,需要从点集中重建一个粗略合理的几何形状。求出一定程度上反映这些散点轮廓的平面多边形,给出边的连接方式即可。如从下图的左图散点重建为右图的形状:

网上流传的版本都是求凸包,而不是求凹包,于是自己写一个版本的代码,有瑕疵,但是基本可以用;

思路:随机取一个点作为原点A,依次计算A点与其余各点的连线的正切值,以A点为原点,分割为多个正切值的区间,每个正切值的区间内取一个最远的点作为边缘点,依次连接边缘点即组成一个粗略的凹包图形。

如上图,以A点作为原点,把它的360区域按照正切值分为了4个区域,每个区域找最远的点作为边缘点。这里只分了4个区域作为示意图,实际可以分很多个区域,效果会好很多。

C++ 的代码,如下:

vector<vector <cv::Point>> contour_s;
    vector <float> threshold;
    int bin_num = 30;
    for (int i = 0; i <= bin_num; i
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自己写的点云点集凹包求解 ,不是凸包!!!(附C++代码) 的相关文章

  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 访问者和模板化虚拟方法

    在一个典型的实现中Visitor模式 该类必须考虑基类的所有变体 后代 在许多情况下 访问者中的相同方法内容应用于不同的方法 在这种情况下 模板化的虚拟方法是理想的选择 但目前这是不允许的 那么 模板化方法可以用来解析父类的虚方法吗 鉴于
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 如何识别 WPF 文本框中的 ValidationError 工具提示位置

    我添加了一个箭头来指示工具提示中的文本框 当文本框远离屏幕边缘时 这非常有效 但是当它靠近屏幕边缘时 工具提示位置发生变化 箭头显示在左侧 Here is the Image Correct as expected since TextBo
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 三. Zuul 网关服务基础解释及基础搭建测试

    目录 一 基础 Zuul 与 Gateway 区别 二 Zuul1 网关 三 Zuul 核心过滤器 pre过滤器 route过滤器 post过滤器 四 搭建 Zuul 网关服务 通过 Zuul 间接访问微服务接口 1 步骤 2 创建目标服务
  • 女性架构师优先?驾驭概念的技能是最高潜力

    51CTO独家特稿 在近日51CTO开发频道对数位架构师进行采访的时候 编辑观察到一个很有意思的现象 那就是他们在提起一个假想架构师的时候会下意识的使用 she 或者 她 来指代 然而我们这次采访到的的架构师们却全都是男士 这似乎是一个比较
  • 1254 统计封闭岛屿的数目(dfs)

    1 问题描述 有一个二维矩阵 grid 每个位置要么是陆地 记号为 0 要么是水域 记号为 1 我们从一块陆地出发 每次可以往上下左右 4 个方向相邻区域走 能走到的所有陆地区域 我们将其称为一座 岛屿 如果一座岛屿 完全 由水域包围 即陆
  • AJAX异步请求&JSON数据格式

    目录 前言 1 AJAX的实现方式 1 1原生的js实现方式 1 2JQuery实现方式 2 1语法 3 JSON数据和Java对象的相互转换 3 1将JSON转换为Java对象 3 2将Java对象转换为JSON 前言 AJAX ASyn
  • 重启虚拟机后dhclient进程未运行解决办法

    https www cnblogs com jiawei2527 p 10778938 html 问题分析 重启虚拟机后 dhclient进程未运行的根因通常为 1 NetworkManager未开启自启动导致的dhclient进程未运行
  • 计算机组成原理--基于Logisim的奇偶校验电路实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的奇偶校验电路实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logi
  • 实现整数堆栈算法的Java程序

    实现整数堆栈算法的Java程序 堆栈 Stack 是一种常用的数据结构 它遵循先进后出 Last In First Out LIFO 的原则 在Java中 我们可以使用整数堆栈算法来实现一个基本的堆栈数据结构 本文将演示如何使用Java编写
  • vue 图片下载到本地,图片保存到本地

    必须同源 访问的网站域名与服务器域名一致 才能下载 downs var alink document createElement a alink href this shop shoppic url alink download pic 图
  • 没有libelf.h libdw.h

    执行如下安装 apt get install libdw dev
  • editview只输入英文_android使用正则表达式控制EditText只能输入数字和英文

    在方法中加载 edt addTextChangedListener new SearchWather edt 新建类 SearchWather java import java util regex Matcher import java
  • 企业微信获取用户信息响应40029(微信小程序与公众号出现类似问题应该是同样的原因)

    企业微信获取用户信息响应40029 在对接企业微信的时候需要通过code去获取userId 但是会返回40029的error码 经过测试与验证原因是访问地址 https open weixin qq com connect oauth2 a
  • 【Vue学习笔记】export ‘default‘ (imported as ‘Vue‘) was not found in ‘vue‘问题解决

    export default imported as Vue was not found in vue 安装了5 几的vuecli src plugins element js里用到了 import Vue from vue npm run
  • 绝无仅有的SpringBoot+Vue前后端分离项目《盈利宝》

    每天都在制造矛盾并解决矛盾的路上 程序员的主要矛盾 不是书和资料多不多的矛盾 而是学着学着发现知识又更新了 时间就像一台永不停歇的永动机 向前不停地运作 年初的flag渐行渐远 管他前浪 还是后浪 能浪的浪 才是好浪 今天带你解锁 Spri
  • gitlab操作

    1 配置ssh 点击访问 2 创建新分支与切换新分支 git branch 新分支名 创建 git checkout 新分支名 切换到新分支 3 查看当前分支 git branch 所指的就是当前所在分支 4 本地删除文件后与远程git同步
  • JConsole&VisualVM监控总结

    简介 JConsole 以下写作jconsole VisualVM 以下写作jvisualvm 都是比较好的JVM调优工具 且都为JDK自带 可在命令行直接启动 监控示例 Server端 需要监控的主机 配置 设置临时JAVA参数 expo
  • 管理用户账号

    目录 Windows平台用户账号介绍 管理本地用户账号 用户配置文件 演示配置漫游用户配置文件 强制漫游配置说明 管理本地组 组的操作 案例分析 Windows平台用户账号介绍 在Windows系统中 每当用户需要登录到系统时就需要对用户进
  • 复杂grid 支持多表头,固定表头,冻结列,合并行

    该组件支持三种渲染形态 因为有些简单的表格没必要去做太复杂的处理 支持自适应页面宽度和可以设置固定宽度 理论上是所有浏览器都支持 但是因为我引用了一些工具类 处理数组的filter map 所以向前兼容可以自己实现这些方法 第一种 不需要固
  • Ubuntu系统下查看显卡相关信息

    查看显卡信息 root ubuntu home ubuntu lspci grep i vga 02 00 0 VGA compatible controller NVIDIA Corporation GM200 GeForce GTX T
  • Java将文件转换成二维码

    生成二维码主要代码为在步骤1 2中 下边后续步骤3 4 5涉及到具体的业务 要是用该工具类时需要拷贝前两个步骤代码即可 1 在项目pom xml文件中引入生成二维码的第三方依赖
  • 自己写的点云点集凹包求解 ,不是凸包!!!(附C++代码)

    近期遇到一个计算几何问题 需要从点集中重建一个粗略合理的几何形状 求出一定程度上反映这些散点轮廓的平面多边形 给出边的连接方式即可 如从下图的左图散点重建为右图的形状 网上流传的版本都是求凸包 而不是求凹包 于是自己写一个版本的代码 有瑕疵