又是计算几何,我感觉最近对计算几何上瘾了。 当然,工作上也会用一些,不过工作上一般直接调用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代码如下: 拟合 ...