一维离散数据的分区均匀采样

news2024/11/27 8:43:51

原理

原理类似文章点云梯度下采样中提到的梯度下采样。

大致采样思路如下:

Step1:计算出每个待采样点 p i p_i pi 的梯度 G i G_i Gi,并计算节点点云整体的平均梯度作为梯度阈值 G t G_t Gt

Step2:比较 G i G_i Gi 与梯度阈值 G t G_t Gt 大小,如果小于梯度阈值 G t G_t Gt,则把采样点 p i p_i pi 划分到节点属性变化剧烈区间,反之划分到节点属性变化缓慢区间。

Step3:采用均匀网格法对两个区域的节点点云进行精简(下采样),剧烈区间和缓慢区间的边长阈值分别设置为 A A A B B B ,并且 A < B A < B A<B

相对空间离散三维点的梯度下采样,一维离散数据分区采样只是在维度上降到了一维,其余采样点计算流程并无差异。

代码实现

def SamplingDiscrete1D():
    y = np.loadtxt('y_data.csv', delimiter = ',')
    y_t = np.mean(y)
    a_x, b_x = [], []
    for i, y_i in enumerate(y):
        if y_i > y_t:
            a_x.append(i + 1)
        else:
            b_x.append(i + 1)

    def uniform_sample(origin_points, interval):
        filtered_points = []
        # 计算边界点和划分区间数量
        x_min, x_max = np.amin(y), np.amax(y)
        h = []  # h 为保存索引的列表
        for j in range(len(origin_points)):
            hx = (origin_points[j] - x_min) // interval
            h.append(hx)
        h = np.array(h)
        # 采样点
        h_indice = np.argsort(h)  # 返回h里面的元素按从小到大排序的索引
        h_sorted = h[h_indice]
        begin = 0
        for j in range(len(h_sorted)):
            point_idx = h_indice[begin: j + 1]
            if j == len(h_sorted) - 1:  # 到最后一个区间的最后一个点
                filtered_points.append(np.round(np.mean(origin_points[point_idx])))  # 计算最后一个体素的采样点
                continue
            if h_sorted[j] == h_sorted[j + 1]:
                continue
            else:
                filtered_points.append(np.round(np.mean(origin_points[point_idx])))
                begin = j + 1
        return filtered_points

    filter_a = uniform_sample(np.array(a_x), 4)
    filter_b = uniform_sample(np.array(b_x), 20)
    sample_point = sorted(set(list(map(int, filter_a + filter_b))))
    print(len(sample_point))
    # print(sample_point)
    return sample_point

其中通过如下两行代码进行分区均匀采样。

filter_a = uniform_sample(np.array(a_x), 4)
filter_b = uniform_sample(np.array(b_x), 20)

4和20分别为filter_a(变化剧烈分区)和filter_b(变化缓慢分区)的采样间隙大小。

测试结果

filter_a=4,filter_b=20。

待采样点总数206,采样点总数32。

在这里插入图片描述

filter_a=2,filter_b=20。

待采样点总数206,采样点总数47。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于BP神经网络的轨迹跟踪(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

002.组合|||——回溯算法

1.题目链接&#xff1a; 216. 组合总和 III 2.解题思路&#xff1a; 2.1.题目要求&#xff1a; 给一个元素数量k和一个元素和n&#xff0c;要求从范围[1,2,3,4,5,6,7,8,9]中返回所有元素数量为k和元素和为n的组合。&#xff08;每个数字只能使用一次&#xff09; 比如输入k…

大话游戏循环Game Loop——PythonC++

目录 前言 什么是游戏循环&#xff1f; 游戏循环的意义 从结构上来看&#xff1a; 从功能上来看&#xff1a; 正文 一个简单的游戏循环 阻塞游戏循环 现代基础游戏循环 “时间” 固定帧率游戏循环 时间驱动不固定帧率游戏循环 灵活帧率更新 之后的新问题 总结 …

网络基础—网关、网段、子网掩码

接上个笔记&#xff0c;工作时发现看似在一个网段的2个IP地址却ping不通&#xff0c;这里就是子网掩码发挥了作用。 IP地址 首先从最熟悉的IP地址开始介绍&#xff0c;IP地址是唯一标识&#xff0c;由32个0和1构成&#xff0c;长度为32bit&#xff0c;如00001010000000000000…

序列模型之循环神经网络(二)

目录 一.语言模型和序列生成 二.新序列采样 三.带有神经网络的梯度消失 四.GRU单元 一.语言模型和序列生成 上图的例子就是咱们的手机上的语音转文字输入差不多&#xff0c;说一句话&#xff0c;可能有多种可能的句子&#xff0c;那么到底是哪一种呢&#xff0c;咱们的语言…

【EDA365电子论坛】硬件人经历南下、北上,回乡创业,后悔了吗?

南下&#xff1f;北上&#xff1f;留下来&#xff1f;亦或是回乡&#xff1f;这些问题或许是每个电子人都曾遇到过的&#xff0c;如果可以&#xff0c;谁不想留在自己所熟悉的地方呢&#xff0c;但生活&#xff0c;总会让你想要的更多&#xff0c;只能选择再前行一步。 前几天在…

LeetCode题目笔记——2486. 追加字符以获得子序列

文章目录题目描述题目难度——中等方法一&#xff1a;一次遍历代码/C总结这个是上周末的周赛题目&#xff0c;当时忘做了&#xff0c;晚上的时候才想起&#xff0c;可惜了&#xff0c;题目还挺有意思的&#xff0c;类似的好像在以前做过&#xff0c;题目联机在这题目链接 题目…

你好,法语!A2知识点总结(4)

4.固定表达 4.1 devoir faire 4.2 ne…que ne…que&#xff1a;只…,仅仅 注意 用ne…que替换句子 Ex : En ce moment, il mange surtout des crales. En ce moment, il ne mange que des crales. 1)Elle lit surtout des romans. Il fait surtout du tennis.Ils s’intres…

NeRF算法Keras实现教程

在这个教程中&#xff0c;我们展示了 Ben Mildenhall 等人的研究论文 NeRF&#xff1a;将场景表示为用于视图合成的神经辐射场的最小实现。作者提出了一种巧妙的方法&#xff0c;通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助你直观地理解这一点&#x…

Mac下adb性能测试实战

本次实验以Editor App为例 1.测试Editor启动时长 打开终端&#xff0c;依次输入如下命令&#xff1a; adb devices 查看设备是否连接 adb shell 进入手机系统 adb devices pm list package -f | grep vidma 获取Editor包名 dumpsys package vidma.video.editor.video…

[glacierctf 2022] 只会3个

目录 Crypto CryptoShop 完成 Strange Letters Simple Crypto ChaCha60 Unpredictable Misc The Climber Size Matters ClipRipStage1 pwn Break the Calculator old dayz File-er rev Whats up Sandboxer 这个比赛完事后马上关网站。想复现都困难。会的不…

【宝塔面板安装与配置、Redis安装与配置、MySQL安装与配置】

提示&#xff1a;宝塔面板下载地址&#xff1a;https://www.bt.cn/new/download.html 文章目录前言一、快速迁移二、设置固定ip一.保证可以连接网络二.设置固定ip三、搭建宝塔面板四、做好备份五、安装Redis六、安装MySQL一、8.0版本以下二、8.0版本以上三、安全组开放端口四、…

GitHub上最全的Java面试题库竟还要收费?黑客强行开源后遭起诉

“金三银四”、“金九银十” 一直被称为是跳槽的旺季&#xff0c;最近也有不少小伙伴找我咨询一些面试相关的问题。但是我的建议是跳槽之前先想清楚自己为什么要跳槽&#xff0c;不要看到身边的同事跳槽之后薪资涨了不少&#xff0c;没有做好充分的准备就盲目开始投简历去面试。…

最新版 Cesium(1.99.0) 构建封装开发环境以及遇到问题

最新版 Cesium&#xff08;1.99.0&#xff09; 构建封装开发环境以及遇到问题使用版本Webpack4.* 集成 Cesium 错误官方示例介绍官方示例配置介绍&#xff1a;官方示例配置补充&#xff1a;webpack5 过程学习资料githup 完整项目最近项目用 Cesium 比较多&#xff0c;因此想把常…

世界各国GDP相关面板数据(1960-2019年)

1、数据来源&#xff1a;世界银行 2、时间跨度&#xff1a;1960-2019年 3、区域范围&#xff1a;全球 4、指标说明&#xff1a; 该数据包含以下指标&#xff1a; 1.世界各国1960-2019年GDP 2.世界各国1960-2019年GDP增长率 3.世界各国1960-2019年人均GDP 4.世界各国196…

SwiftUI 精品源码之学习可视化应用程序基于SceneKit,AVSpeechSynthetizer 文字转语音功能tts(教程)

我是一个非常注重视觉的人,这也适用于我的学习。当他们做某些事情时,我通过观察事物或其他人来学习。我也有很强的听觉倾向,所以你不能指望我读完一本 300 页的小说,但你可以指望我听 1 小时的播客而不会分心,并从中真正学到一些东西。 这种学习方式时常帮助我,从一门学科…

龙蜥开发者说:开源是场马拉松!来自广州大学姚同学的开源成长记 | 第 13 期

「龙蜥开发者说」第 13 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了龙蜥社区开发者姚胤…

远程兴起,前端音视频通话?学

前言 看到前两篇文章都非常受欢迎&#xff0c;加起来有一千多赞了&#x1f44d;&#x1f3fb; &#xff0c;非常的开心&#xff01;&#x1f916;继续加油&#xff01;冲&#xff01; 我们在前两篇文章中大概讲解了 音视频媒体流的获取&#xff0c;处理&#xff0c;以及在上一…

(免费分享)基于jsp的CRM客户管理-带论文

一、课题来源&#xff1a; 自有商业活动&#xff0c;客户关系就一直是商业活动中的一个核心问题&#xff0c;同时也成了商务活动成功的审核标准。在全球经济一体化为时代背景的时代&#xff0c;企业面临着为公司带来更多的客户、为管理者提供准确的信息和便捷的操作查询手段 、…

新旧iphone短信转移,苹果旧手机短信导入新手机

短信携带重要信息内容&#xff0c;新旧iphone短信转移&#xff1f;您可能知道&#xff0c;iOS设备上不支持导出iPhone简讯&#xff0c;更不用说打印iPhone上的短信了。幸运的是&#xff0c;有一些可行的方法可以将iPhone短信导入到另一个iPhone&#xff0c;继续阅读以获得更多帮…