目录
前言
本程序主要应用于边界线上点的稀释,本文提供随机数和交互式输入两种方式实现数据载入。
一、算法实现
# -*- coding = utf-8 -*-
# @time:2021/6/5 21:39
# Author:scw
# @File:DP.py
# @Software:PyCharm
# Environment:Python3.6
from math import sqrt
import numpy as np
import random as r
_seed = 10
def PLDistance(Point, Point_Beg, Point_End):
p, begP, endP = np.array(Point), np.array(Point_Beg), np.array(Point_End)
area = abs(np.cross(endP - begP, p - begP))
bottom = sqrt((endP[0] - begP[0]) ** 2 + (endP[1] - begP[1]) ** 2)
return area / bottom
class DP_S(object):
def __init__(self):
self.dslimit = dslimit
self.qualify_list = list()
self.disqualify_list = list()
def dp(self, point_list):
if len(point_list) < 3:
self.qualify_list.extend(point_list[::-1])
else:
maxds_index, maxds = 0, 0

该程序实现了一种边界线上点的稀疏算法,适用于点云数据处理。通过输入容差值和点的数量,可以选择随机生成或交互式输入坐标。算法采用DP方法,对点进行筛选,最终输出满足条件的点序列。示例展示了随机数生成和用户输入两种方式的结果,分别给出了符合条件的点的数量。
最低0.47元/天 解锁文章
1447

被折叠的 条评论
为什么被折叠?



