又是計算幾何,我感覺最近對計算幾何上癮了。 當然,工作上也會用一些,不過工作上一般直接調用boost的geometry庫。 上次寫過最小包圍圓,這次是最小包圍矩形,要比最小包圍圓復雜些。 最小包圍矩形可不一定是個直立的矩形,也可能像下圖一樣是傾斜的。 求法如下: 1.求多邊形凸包 ...
原始算法是sphere,我這里簡化為circle了。 Ritter s求最小包圍圓為線性算法,因為非常簡單,所以應用非常廣泛。 該算法求出的圓比最優圓大概會大個 到 左右,求最優圓應該可以用Bouncing Bubble算法,以后有機會可以嘗試一下。 Ritter s算法如下: .從點集中隨機選出兩個點作為直徑對圓進行初始化。 .判斷下一個點p是否在圓中,如果在則繼續本步驟,如果不在則進行步驟 。 ...
2014-09-24 20:13 0 4982 推薦指數:
又是計算幾何,我感覺最近對計算幾何上癮了。 當然,工作上也會用一些,不過工作上一般直接調用boost的geometry庫。 上次寫過最小包圍圓,這次是最小包圍矩形,要比最小包圍圓復雜些。 最小包圍矩形可不一定是個直立的矩形,也可能像下圖一樣是傾斜的。 求法如下: 1.求多邊形凸包 ...
% 算法思路: % 1. 在點集中任取3點A,B,C。 % 2. 作一個包含A,B,C三點的最小圓,圓周可能通過這3點,也可能只通過其中兩點,但包含第3點.后一種情況圓周上的兩點一定是位於圓的一條直徑的兩端。 % 3. 在點集中找出距離第2步所建圓圓心最遠的D點,若D點已在圓內或圓周 ...
1、cvConvexHull2 尋找凸包 hull := cvConvexHull2 (ptseq, 0, CV_CLOCKWISE, 1);//ptseq,hull:pCvSeq; //畫出凸包 ...
最近總是對計算幾何方面的程序比較感興趣。 多圓求交點,要先對圓兩兩求交點。 有交點的圓分為相切圓和相交圓。 相切圓求法: 1.根據兩圓心求直線 2.求公共弦直線方程 3.求兩直線交點即兩圓切點。 相交圓求法: 1.求公共弦方程直線。 2.公共弦直線方程和其中一 ...
凸包 參考 安德魯算法 分治法(其中nfox的項目實現的是分治法) 多邊形快速凸包算法(Melkman‘s Algorithm) 還可以這看cpp的代碼: https://www.cnblogs.com/VividBinGo/p/11637684.html 定義 凸包又叫凸多邊形,本篇 ...
起本篇題目還是比較糾結的,原因是我本意打算尋找這樣一個算法:在測量數據有比較大離群點時如何估計原始模型。 上一篇曲面擬合是假設測量數據基本符合均勻分布,沒有特別大的離群點的情況下,我們使用最小二乘得到了不錯的擬合結果。 但是當我加入比如10個大的離群點時,該方法得到的模型就很難看了。所以我就在 ...
學習這個算法是為學習圖像處理中的圖割算法做准備的。 基本概念: 1.最大流是一個有向圖。 2.一個流是最大流,當且僅當它的殘余網絡中不包括增廣路徑。 3.最小割就是網絡中所有割中值最小的那個割,最小割是不唯一的,不過最小割的值是唯一的。 4.最大流的流量等於某一最小割的容量。 算法思想 ...
一般的最小二乘通常是一次拿到全部的數據, 對所有數據進行統一優化計算得到模型系數。 遞推最小二乘是以一種遞推的方式計算最小二乘,每次使用最新的測量值,來不斷更新模型系數。 遞推公式如下: 公式中A和B為測量值,X為模型系數。 matlab代碼如下: 擬合 ...