国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

軌跡數據壓縮算法

TANKING / 2864人閱讀

摘要:數據問題解壓縮結果計算高主要運行結果列表容差計算通過的內容算法點列表第一個點最后一個點容差軌跡結果原始圖壓縮圖

數據
P0,107.605,137.329
P1,122.274,169.126
P2,132.559,179.311
P3,153.324,184.276
P4,171.884,174.654
P5,186.408,168.634
P6,196.566,145.204
P7,200.549,127.877
P8,211.391,118.179
P9,216.318,116.547
P10,225.197,122.796
P11,231.064,135.459
P12,240.835,143.398
P13,254.630,144.933
P14,265.055,158.761
P15,271.004,159.660
P16,274.474,173.979
問題


import math

# 壓縮結果
Compressed = list()


class Point(object):
    def __init__(self, id, x, y):
        self.id = id
        self.x = x
        self.y = y


def read_m(path):
    m = []
    with open(path, "r") as f:
        for i in f.readlines():
            aa = i.replace("
", "").split(",")
            p = Point(aa[0], eval(aa[1]), eval(aa[2]))
            m.append(p)

    return m


def calc_height(point1, point2, point):
    """
    計算高
    :param point1: Point
    :param point2: Point
    :param point: Point
    :return:
    """
    area = abs(0.5 * (point1.x * point2.y + point2.x *
                      point.y + point.x * point1.y - point2.x * point1.y - point.x *
                      point2.y - point1.x * point.y))

    bottom = math.sqrt(
        math.pow(point1.x - point2.x, 2) + math.pow(point1.y - point2.y, 2)
    )

    height = area / bottom * 2
    return height


def DPmain(pointList, tolerance):
    """
    主要運行結果
    :param pointList: Point 列表
    :param tolerance: 容差
    :return:
    """
    if pointList == None or pointList.__len__() < 3:
        return pointList

    firspoint = 0
    lastPoint = len(pointList) - 1

    Compressed.append(pointList[firspoint])
    Compressed.append(pointList[lastPoint])

    while (pointList[firspoint] == pointList[lastPoint]):
        lastPoint -= 1
    DouglasPeucker(pointList, firspoint, lastPoint, tolerance)



def DouglasPeucker(pointList, firsPoint, lastPoint, tolerance):
    """
    計算通過的內容
    DP算法
    :param pointList: 點列表
    :param firsPoint: 第一個點
    :param lastPoint: 最后一個點
    :param tolerance: 容差
    :return:
    """
    maxDistance = 0.0
    indexFarthest = 0
    for i in range(firsPoint, lastPoint):
        distance = calc_height(pointList[firsPoint], pointList[lastPoint], pointList[i])
        if (distance > maxDistance):
            maxDistance = distance
            indexFarthest = i

    if maxDistance > tolerance and indexFarthest != 0:
        Compressed.append(pointList[indexFarthest])
        DouglasPeucker(pointList, firsPoint, indexFarthest, tolerance)
        DouglasPeucker(pointList, indexFarthest, lastPoint, tolerance)


if __name__ == "__main__":
    a = read_m("軌跡.txt")
    print(a.__len__())
    # for item in a:
    #     print(item.id, item.x, item.y)
    DPmain(a, 8)
    for i in Compressed:
        print("{},{},{}".format(i.id, i.x, i.y))
結果
P0,107.605,137.329
P16,274.474,173.979
P9,216.318,116.547
P3,153.324,184.276
P1,122.274,169.126
P5,186.408,168.634
P7,200.549,127.877

原始圖

壓縮圖

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44818.html

相關文章

  • 地圖匹配算法實踐

    摘要:在實際應用中,采樣信號的質量會嚴重影響地圖匹配結果采樣頻率的降低定位誤差的加大信號的丟失,都會使匹配的不準確性增加。年首次設立的競賽,其內容就是地圖匹配。地圖匹配算法綜述以使用到的信息來劃分現有的算法可被分成四類幾何拓撲概率高級。 1 背景 如下圖所示,1、2、3 這三個點是汽車的GPS定位結果,盡管汽車是在道路上,但定位結果與道路存在偏差。地圖匹配(Map Matching)是指將行...

    nihao 評論0 收藏0
  • 地圖匹配算法實踐

    摘要:在實際應用中,采樣信號的質量會嚴重影響地圖匹配結果采樣頻率的降低定位誤差的加大信號的丟失,都會使匹配的不準確性增加。年首次設立的競賽,其內容就是地圖匹配。地圖匹配算法綜述以使用到的信息來劃分現有的算法可被分成四類幾何拓撲概率高級。 1 背景 如下圖所示,1、2、3 這三個點是汽車的GPS定位結果,盡管汽車是在道路上,但定位結果與道路存在偏差。地圖匹配(Map Matching)是指將行...

    bluesky 評論0 收藏0
  • 算法學習 >> 快速理解算法運行軌跡

    摘要:算法的學習是枯燥無味的,如何快速理解和提高學習的樂趣理解復雜數據結構的最佳方法是看到它們的實際運行。廢話不多說了,直接上網址了主頁算法算法列表希望對愛好算法的你有幫助謝謝。 算法的學習是枯燥無味的,如何快速理解和提高學習的樂趣?理解復雜數據結構的最佳方法是看到它們的實際運行。 今天給大家推薦一個網址、它已經為各種數據結構和算法開發了交互式動畫,這樣有助于我們更直觀的去理解和學習各種數據...

    MonoLog 評論0 收藏0
  • 「不良視頻」如何消滅?她手把手教你走出第一步

    摘要:嚴肅的開場白故事要從深度學習說起。本文從視頻分類的角度,對深度學習在該方向上的算法進行總結。數據集熟悉深度學習的朋友們應該清楚,深度學習是一門數據驅動的技術,因此數據集對于算法的研究起著非常重要的作用。是一個比較成功的傳統方法與深度學習算 showImg(https://segmentfault.com/img/bV7hQP?w=900&h=330); 不嚴肅的開場白 視頻社交已經成為...

    Invoker 評論0 收藏0

發表評論

0條評論

TANKING

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<