Python實現點云Kmeans、歐式和DBSCAN聚類

????????本節我們分享點云處理中的三種常見聚類方法,分別是K-means、歐氏與 DBSCAN聚類。具體介紹如下:

1. K-means 聚類

????????定義:一種基于距離度量的無監督學習算法,將數據劃分為 K 個緊湊的簇,使簇內數據相似度高、簇間差異大。

????????算法流程
1)初始化:隨機選取 K 個點作為初始質心。
2)分配:計算每個樣本到質心的歐氏距離,將其歸入最近簇。
3)更新:重新計算各簇的質心(簇內樣本的均值)。
4)迭代:重復步驟 2-3,直至質心不變或達到最大迭代次數。

????????特點:計算高效、收斂快,但對初始質心敏感,僅適用于凸形簇。

????????典型應用:圖像分割、客戶分群、模式識別。

2. 歐氏聚類(基于歐氏距離的密度聚類)

????????定義:通過歐氏距離閾值(eps)和最小鄰居數(min_points)分割點云數據,識別密集區域。

????????算法流程
1)初始化:所有點標記為未訪問。
2)擴展簇:
- 任選未訪問點,檢索其 eps 鄰域內的所有點(含自身)。
- 若鄰居數 ≥ min_points,則標記為新簇,并遞歸檢查鄰居的鄰居。
3)終止:所有點被訪問后,孤立點(鄰居數 < min_points)標記為噪聲。

????????特點:無需預設簇數,可識別任意形狀簇,但對參數(eps、min_points)敏感。

????????典型應用
三維點云分割:如建筑掃描中分離房間或自動駕駛中區分車輛/行人。
噪聲過濾:剔除孤立點或小簇,提升數據質量。

3. DBSCAN 聚類(Density-Based Spatial Clustering of Applications with Noise)

????????定義:基于密度的聚類算法,可發現任意形狀簇并自動標記噪聲。

????????核心概念
1)核心點:某點的 ε 鄰域內至少包含 min_points個點。
2)密度直達:若點 q 在核心點 p 的 ε 鄰域內,則 q 從 p 密度直達。
3)密度可達:若存在點鏈使相鄰點滿足密度直達關系,則鏈首尾兩點密度可達。
4)聚類形成:從任一核心點出發,遞歸合并所有密度可達的點,形成簇。
5)噪聲點:未被任何簇包含的點。

????????特點:抗噪聲、無需預設簇數,但對高維數據性能下降。

總結對比

算法核心思想形狀適應性噪聲處理參數需求
K-means距離優化(質心迭代)凸形簇需預設簇數 K
歐氏聚類密度閾值(eps + min_points)任意形狀標記噪聲需調參 eps/min_points
DBSCAN密度可達性任意形狀自動識別噪聲需調參 ε/min_points

本次使用的數據依然是我們的兔砸!!!!!!!!(破音)

一、Kmeans、歐式和DBSCAN聚類程序

from moviepy.editor import VideoFileClip
import os
import math
import subprocessdef mp4_to_gif(src_file, target_file):# 使用VideoFileClip加載MP4文件video_clip = VideoFileClip(src_file)# 調整視頻的尺寸,如果需要的話video_size_w = math.ceil(video_clip.size[0] / 0.9)video_size_h = math.ceil(video_clip.size[1] / 0.9)video_clip = video_clip.resize((video_size_w, video_size_h))# 將視頻轉換為GIFvideo_clip.write_gif(target_file, fps=10)  # 設置幀率,可以根據需要調整# 關閉視頻剪輯對象video_clip.close()def shrink_gif(file):# subprocess.run(["D:/gifsicle/gifsicle.exe", "-b", "-O2", "--lossy=40", "--colors=256", file])subprocess.run(["D:/gif_ya_suo/gifsicle-1.95-win64/gifsicle.exe","-b", "-O2", "--lossy=40","--colors=256", file])# video_path = 'E:/CSDN/視頻/1_點云讀寫/隨機顏色_1.mp4'
# target_folder = 'E:/CSDN/視頻/1_點云讀寫/隨機顏色_1.gif'original_folder = 'E:/CSDN/視頻/23_Kmeans+ou+DBSCAN聚類/1'
target_folder = original_folder
for filename in os.listdir(original_folder):# 檢查文件名是否包含舊字符串if '.mp4' in filename:src_filepath = os.path.join(original_folder, filename)target_filepath = os.path.join(target_folder, filename.replace('mp4', 'gif'))print(src_filepath)mp4_to_gif(src_filepath, target_filepath)  # 將mp4轉為gifshrink_gif(target_filepath)  # 壓縮gif# break
print("All files done.")

????????記得運行上述程序是需要安裝庫的哦,不是程序里面的sklearn,是scikit-learn。不知道怎么安裝的同學可以看往期的分享,這里就不著重說了。

pip install scikit-learn

二、Kmeans、歐式和DBSCAN聚類結果

????????從結果來看,三個兔砸可以正常的分割。換其他點云的時候記得調節參數啊,前面表格里有詳細的說明。就醬,下次見^-^

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/93554.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/93554.shtml
英文地址,請注明出處:http://en.pswp.cn/web/93554.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java后端】MyBatis-Plus 原理解析

MyBatis-Plus 原理解析 其實 MyBatis-Plus 的 Service 層設計就是為了讓開發者不用重復寫很多樣板代碼。我們來一點點剖析 UserServiceImpl、IService、UserService、ServiceImpl 之間的關系和調用鏈。1. 類/接口關系圖IService<T>▲│UserService (接口) <-- 自定義…

Nacos 注冊中心學習筆記

&#x1f389; Alibaba微服務組件 Nacos 注冊中心超詳細學習筆記 &#x1f389; &#x1f4cc; 寫在前面&#xff1a;本文基于官方PDF文檔與實戰經驗&#xff0c;整理了Nacos注冊中心的核心知識點、部署流程與實戰技巧&#xff0c;力求圖文并茂、通俗易懂&#xff0c;適合收藏反…

java 策略模式 demo

策略模式介紹策略模式&#xff08;Strategy Pattern&#xff09;是一種行為型設計模式&#xff0c;它定義了一系列算法&#xff0c;將每個算法封裝起來并使它們可相互替換。策略模式讓算法的變化獨立于使用算法的客戶端&#xff0c;從而實現靈活的算法切換。核心角色&#xff1…

SAP Valuation Category在制造業成本核算中的使用場景與配置方案

Valuation Category在制造業成本核算中的使用場景與配置方案一、核心使用場景&#xff08;制造業特有&#xff09;1. 內制 vs 外購成本分離業務需求&#xff1a;同一物料可能通過內部生產&#xff08;成本含料工費&#xff09;或外部采購&#xff08;成本含采購價運費&#xff…

我的 LeetCode 日記:Day 36 - 動態規劃,背包問題的千變萬化

昨天&#xff0c;我初步掌握了 0/1 背包問題的理論基礎和標準解法。今天&#xff0c;我將這種思想應用到了更廣泛的場景中。今天的幾道題&#xff0c;乍一看和背包沒什么關系&#xff0c;但通過巧妙的數學轉化&#xff0c;它們的核心都變成了 0/1 背包問題。 這讓我深刻體會到…

本地處理不上傳!隱私安全的PDF轉換解決方案

PDF能鎖定排版、字體、圖片位置&#xff0c;無論在什么設備打開都保持一致。它是無廣告、簡潔高效的專業PDF處理工具。功能豐富&#xff0c;支持批量操作&#xff1a;只需將文件拖入界面&#xff0c;選擇目標格式&#xff08;如Word、PPT、Excel、圖片等&#xff09;&#xff0…

Docker build創建鏡像命令入門教程

一、核心概念Dockerfile 定義鏡像構建步驟的文本文件&#xff0c;包含一系列指令和配置&#xff0c;用于自動化創建鏡像。鏡像層&#xff08;Layer&#xff09; Docker 鏡像由多層只讀層疊加而成&#xff0c;每個指令&#xff08;如 RUN、COPY&#xff09;會生成一個新的層。層…

Redis 是單線程模型嗎?

最近在面試中經常被問到這個問題&#xff1a;"Redis是單線程的嗎&#xff1f;"很多同學都會脫口而出&#xff1a;"是的&#xff01;"但其實這個答案并不完全正確。今天我們就來聊聊Redis的線程模型&#xff0c;把這個問題徹底搞清楚。 先說結論 Redis的線程…

Hologres實戰:路徑分析函數

前言 Hologres提供了一套高效的路徑分析函數&#xff0c;包括路徑明細計算和結果解析功能&#xff0c;能夠幫助用戶深入理解用戶行為路徑&#xff0c;并通過桑基圖實現數據可視化。 一、核心功能 路徑明細計算&#xff1a;精確記錄用戶在產品或功能中的完整訪問路徑結果解析…

產品開發實踐(常見的軟硬結合方式)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】前面說過&#xff0c;傳統的純軟件開發&#xff0c;在國內的大背景下面是很難存活的。但是如果是把軟件&#xff0c;構建在硬件基礎之上&#xff0c…

Linux | i.MX6ULL網絡通信-套字節 UDP(第十八章)

01 Linux | i.MX6ULL網絡通信-套字節 TCP(第十七章) 02 iTOP-IMX6ULL 實現基于 UDP 的 socket 編程。

學習嵌入式第三十天

文章目錄進程和線程&#xff08;續&#xff09;線程1.線程傳參2.線程屬性3.線程間通信1.概念2.方式3.互斥鎖4.死鎖5.信號量習題 進程和線程&#xff08;續&#xff09; 線程 1.線程傳參使用第四個參數實現對線程內部的傳參 代碼實現&#xff1a; #include <stdio.h> #inc…

GaussDB 數據庫架構師修煉(十三)安全管理(3)-行級訪問控制

1 背景行級訪問控制特性將數據庫的訪問控制精確到數據表行級別 &#xff0c;只允許用戶查看 、更新或刪除特定的行數據。2 實例場景實例以醫生只能看到治療的病人&#xff0c;不能看其它醫生的病人為例&#xff1a;1)醫院病人的信息表pat_info&#xff1a;csdn> set search_…

Wi-Fi 與蜂窩網絡(手機網絡)的核心區別,以及 Wi-Fi 技術未來的發展方向

在日常生活中&#xff0c;我們既離不開家里的 Wi-Fi&#xff0c;也離不開手機的 4G/5G 網絡。它們都能把我們連接到互聯網&#xff0c;但底層的工作方式卻大不相同。一、設計初衷的不同Wi-Fi誕生于 1997 年的 IEEE 802.11 標準&#xff0c;定位是局域網無線替代。它的目標是讓電…

C++編程實戰:高效解決算法與數據結構問題

個人主頁 &#xff1a; zxctscl 專欄 【C】、 【C語言】、 【Linux】、 【數據結構】、 【算法】 如有轉載請先通知 題目1. 數字統計2. 兩個數組的交集3. 牛牛的快遞4. 點擊消除5. 最小花費爬樓梯6. 簡寫單詞1. 數字統計 BC153 數字統計 #include <iostream> using na…

《零基礎入門AI:深度學習中的視覺處理(卷積神經網絡(CNN)進階)》

一、卷積知識擴展 1. 二維卷積 單通道版本 對于單通道輸入圖像 III (尺寸 HWH \times WHW) 和卷積核 KKK (尺寸 FFF \times FFF)&#xff0c;輸出特征圖 OOO 的計算公式為&#xff1a; O(i,j)∑m0F?1∑n0F?1I(im,jn)?K(m,n)O(i,j) \sum_{m0}^{F-1} \sum_{n0}^{F-1} I(im, j…

pyecharts可視化圖表-pie:從入門到精通(進階篇)

歡迎來到pyecharts餅圖系列教程的進階篇&#xff01;在上一篇基礎教程中&#xff0c;我們學習了餅圖的基本概念和簡單實現。在本文中&#xff0c;我們將深入探索pyecharts中餅圖的六種高級用法和自定義選項&#xff0c;包括環形餅圖、富文本標簽餅圖、滾動圖例餅圖、環形圖、嵌…

【JAVA 核心編程】面向對象高級:類變量與方法 抽象類與接口

一、類變量與類方法&#xff08;靜態變量&#xff09; 1&#xff09;類變量 class Child{private String name;//定義一個變量count&#xff0c;是一個類變量&#xff08;靜態變量&#xff09;static靜態//該變量最大的特點就是會被Child 類的所有對象訪問public static int co…

【Java基礎面試題】數據類型

Java面試高頻總結&#xff1a;基本數據類型深度解析 &#x1f4ca; 八種基本數據類型詳解數據類型關鍵字字節數位數默認值取值范圍核心特性字節型byte180-128 ~ 127最小整數類型短整型short2160-32,768 ~ 32,767較少使用整型int4320-2 ~ 2-1 (約21億)最常用整數類型長整型long8…

攻防世界—unseping(反序列化)

一.審題<?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {call_u…