平面离散点的边界搜寻

hhf_0313 2017-09-23 11:02:48
给出一堆离散点以及对应坐标,我该怎么样才能找到它们的边界点呢?有人可以指点一下吗
...全文
352 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2017-09-23
  • 打赏
  • 举报
回复
这类问题,应该到数据结构和算法版块吧
SIFT概述p200 在前面我们学习了角检测技术,比如Harris等。它们具有旋转不变特性,即使图片发生了旋转,我们也能找到同样的角,很明显即使图像发生旋转之后角还是角。但是如果我们对图像进行缩放,那么角就可能不再是角了。所以基于这个问题,尺度不变特征变换(SIFT)出现了,这个算法可以帮助我们提取图像中的关键并计算它们的描述符。 • 尺度空间极值检测 • 关键精准定位与过滤 • 关键方向指派 • 描述子生成 1. 尺度空间极值检测: (由Harris的弊端)我们知道在不同的尺度空间不能使用相同的窗口检测极值。对于小的角要用小的窗口。对于大的角只能使用大的窗口。为了达到这个目的我们需要使用尺度空间滤波器(由一些列具有不同方差sigma的高斯卷积核构成)。 使用具有不同方差值sigma的高斯拉普拉斯算子(LoG)对图像进行卷积,LoG由于具有不同的方差值sigma所以可以用来检测不同大小的斑,简单来说方差sigma就是一个尺度变换因子,使用一个小方差sigma的高斯卷积核可以很好地检测出小的角,而是用大方差sigma的高斯卷积核可以很好打的检测出大的角。 我们可以在尺度空间和二维平面中检测到局部最大值,如(x,y,sigma),这表示sigma尺度中(x,y)可能是一个关键。但是这个LoG的计算量非常大,所以SIFT算法使用高斯差分算子(DoG)来对LoG做近似。 DoG是下图这组具有不同分辨率的图像金字塔中相邻的两层之间的差值。 在DoG搞定之后,就可以在不同的尺度空间和2D平面中搜索局部最大值了。对于图像中的一个像素而言,它需要与自己周围的8个和上下层18个相比,如果是局部最大值,它就可能是一个关键。基本上关键就是图像在相应尺度空间中的最好代表。如下图所示: 该算法中默认尺度空间为5,经过DoG算法得到4层。所以该算法的作者在文章中给出了SIFT参数的经验值:octave =4。 2. 关键(极值)定位---删边界,去掉低灰度值 kp 我们通过contrastThreshold阈值来将关键修正以得到更正确的结果。作者使用尺度空间的泰勒级数展开来获得极值的准确位置,若极值的灰度值小于阈值(0.03)就会被忽略掉。 DoG算法对边界非常敏感,所以我们必须要把边界去除。我们知道Harris算法除了可以用于角检测之外还可以用于检测边界。作者就是使用了同样的思路。作者用了Hessian矩阵计算主曲率。从Harris角检测的算法中,我们知道当一个特征值远远大于另一个特征值检测到的是边界。所以他们使用了一个简单的函数,如果比例高于阈值(opencv中称为边界阈值),这个关键就会被忽略。文章中给出的边界阈值为10.。 3. 为关键(极值)指定方向参数 ,描述符生成: des1 现在我们要为每一个关键赋予一个反向参数,这样它才会具有旋转不变性。 获取关键(所在尺度空间)的邻域,然后计算这个区域的梯度级和方向,根据计算得到的结果来创建一个方向直方图,其中直方图的峰值为主方向参数,如果其它的任何柱子的高度高于峰值的80%,则被认为是辅方向。 新的关键描述被创建了。选取与关键周围一个16*16的邻域,把它分成16个4*4的小方块,为每个小方块创建一个具有8个bin的方向直方图。总共加起来有128个bin,由此组成了128的向量就构成了关键的描述符。 而代码sift = cv.xfeatures2d.create_SIFT() kp,des=sift.detectAndCompute(gray,None)这两句话的原理就是1-3 4. 关键匹配 采用关键特征向量的欧式距离作为两幅图像中关键的相似性判定度量。取第一个图的某个关键,通过遍历找到第二幅图像中的距离最近的那个关键。cv.BFMatcher,match()就是这个原理,1对1特征,即返回最佳匹配。 而在有些情况下,第二个距离最近的关键与第一个距离最近的关键靠的太近,这可能是由于噪声等引起的,此时要计算最近距离与第二近距离的比值,如果比值大于0.8,就会忽略掉。而cv.BFMatcher.knnMatch就是基于这个原理 cv.BFMatcher.knnMatch可以指定每个关键返回k个最佳匹配,这里不妨令k=2。 源码: img1 = cv.imread("E:/opencv/picture/test1.jpg") img2 = cv.imread("E:/opencv/picture/test2.jpg") gray1 = cv.cvtCo
第1章算法设计和分析 1.1概述 1.2算法设计原则 1.3算法复杂性的度量 1.3.1时间复杂性 1.3.2空间复杂性 1.4最优算法 1.5算法的评价 1.5.1如何估计算法运行时间 1.5.2最坏情况和平均情况的分析 1.5.3平摊分析 1.5.4输入大小和问题实例 思考题 第2章GIS算法的计算几何基础 2.1维数扩展的9交集模型 2.1.1概述 2.1.2模型介绍 2.1.3空间关系的判定 2.2矢量的概念 2.2.1矢量加减法 2.2.2矢量叉积 2.3折线段的拐向判断 2.4判断是否在线段上 2.5判断两线段是否相交 2.6判断矩形是否包含 2.7判断线段、折线、多边形是否在矩形中 2.8判断矩形是否在矩形中 2.9判断圆是否在矩形中 2.10判断是否在多边形内 2.10.1射线法 2.10.2转角法 2.11判断线段是否在多边形内 2.12判断折线是否在多边形内 2.13判断多边形是否在多边形内 2.14判断矩形是否在多边形内 2.15判断圆是否在多边形内 2.16判断是否在圆内 2.17判断线段、折线、矩形、多边形是否在圆内 2.18判断圆是否在圆内 2.19计算两条共线的线段的交 2.20计算线段或直线与线段的交 2.21求线段或直线与圆的交 2.22中心的计算 2.23过作垂线 2.24作平行线 2.25过作平行线 2.26线段延长 2.27三画圆 2.28线段打断 2.29前方交会 2.30距离交会 2.31极坐标作 思考题 第3章空间数据的变换算法 3.1平面坐标变换 3.1.1平面直角坐标系的建立 3.1.2平面坐标变换矩阵 3.1.3平移变换 3.1.4比例变换 3.1.5对称变换 3.1.6旋转变换 3.1.7错切变换 3.1.8复合变换 3.1.9相对(xf,yf)的比例变换 3.1.10相对(xf,yf)的旋转变换 3.1.11几说明 3.2球面坐标变换 3.2.1球面坐标系的建立 3.2.2确定新极Q地理坐标中、 3.3仿射变换 3.4地图投影变换 3.4.1概述 3.4.2地球椭球体的相关公式 3.4.3兰勃特投影 3.4.4墨卡托投影 3.4.5高斯一克吕格投影 3.4.6通用横轴墨卡托投影 思考题 第4章空间数据转换算法 4.1矢量数据向栅格数据转换 4.1.1矢量的栅格化 4.1.2矢量线的栅格化 4.1.3矢量面的栅格化 4.2栅格数据向矢量数据转换 4.2.1栅格坐标与矢量坐标的关系 4.2.2栅格数据矢量化的基本步骤 4.2.3线状栅格数据的细化 4.2.4多边形栅格转矢量的双边界搜索算法 4.2.5多边形栅格转矢量的单边界搜索算法 思考题 第5章空间数据组织算法 5.1矢量数据的压缩 5.1.1间隔取法 5.1.2垂距法和偏角法 5.1.3道格拉斯一普克法 5.1.4光栏法 5.1.5曲线压缩算法的比较 5.1.6面域的数据压缩算法 5.2栅格数据的压缩 5.2.1链式编码 5.2.2游程长度编码 5.2.3块式编码 5.2.4差分映射法 5.2.5四叉树编码 5.3拓扑关系的生成 5.3.1基本数据结构 5.3.2弧段的预处理 5.3.3结匹配算法 5.3.4建立拓扑关系 思考题 第6章空间度量算法 6.1直线和距离 6.1.1直线 6.1.2直线方程 6.1.3到直线的距离 6.2角度量算 6.3多边形面积的量算 6.3.1三角形面积量算 6.3.2四边形面积量算 6.3.3任意二维平面多边形面积量算 6.3.4任意三维平面多边形面积量算 思考题 第7章空间数据索引算法 7.1B树与B+树 7.1.1B树索引结构 7.1.2B+树索引结构 7.2R树结构 7.2.1R树定义 7.2.2R树索引的主要操作算法 7.2.3R*树算法 7.3四叉树结构 7.3.1常规四叉树 7.3.2线性四叉树 7.3.3线性四叉树的编码 7.3.4Z曲线和Hibert曲线算法 思考题 第8章空间数据内插算法 8.1概述 8.1.1几何方法 8.1.2统计方法 8.1.3空间统计方法 8.1.4函数方法 8.1.5随机模拟方法 8.1.6确定性模拟 8.1.7综合方法 8.2分段圆弧法 8.3分段三次多项式插值法 8.3.1三法 8.3.2五法 8.4趋势面插值算法 8.5反距离权重插值算法 8.6双线性插值算法 8.7薄板样条函数法 8.7.1薄板样条函数法 8.7.2规则样条函数 8.7.3薄板张力样条法 8.8克里金法 8.8.1普通克里金法 8.8.2通用克里金法 思考题 第9章Delaunay三角网与Voronoi图算法 9.1概述 9.2Voronoi图 9.3Delaunay三角形 9.4Voronoi图生成算法 9.4.1半平面的交 9.4.2增量构造方法 9.4.3分治算法 9.4.4减量算法 9.4.5平面扫描算法 思考题 第10章缓冲区分析算法 10.1概述 10.2缓冲区边界生成算法基础 10.3缓冲区边界生成算法 10.4线缓冲区边界生成算法 10.5面缓冲区边界生成算法 10.6多目标缓冲区合并算法 思考题 第11章网络分析算法 11.1概述 11.2网络数据模型 11.3路径分析算法 11.3.1单源的最短路径 11.3.2单目标最短路径问题 11.3.3单结对间最短路径问题 11.3.4多结对间最短路径问题 11.3.5次短路径求解算法 11.4最佳路径算法 11.4.1最大可靠路径 11.4.2最大容量路径 11.5连通性分析算法 11.5.1Prim算法 11.5.2Kruskal算法 11.6资源分配算法 思考题 第12章地形分析算法 12.1数字地面模型的生成算法 12.1.1基于离散的DEM规则网格的生成 12.1.2基于不规则三角网的DEM生成 12.1.3DEM数据结构的相互转换 12.2基本地形因子分析算法 12.2.1坡面因子提取的算法基础 12.2.2坡度、坡向 12.2.3坡形 12.3地形特征提取算法 12.3.1地形特征的提取 12.3.2基于规则格网DEM数据提取山脊与山谷线的典型算法 12.4通视分析算法 12.4.1判断两之间的可视性的算法 12.4.2计算可视域的算法 思考题 第13章空间数据挖掘算法 13.1概述 13.2分类算法 13.2.1数据分类的基本过程 13.2.2决策树分类概述 13.2.3决策树的特 13.2.4二叉决策树算法与分类规则的生成 13.2.5决策树分类算法 13.2.6决策树属性的选取 13.2.7改进决策树性能的方法 13.3泛化规则算法 13.3.1概念层次 13.3.2面向属性泛化的策略与特 13.3.3基于规则的面向属性泛化方法 13.4相关分析 13.4.1两要素间的相关分析 13.4.2多要素之间的相关分析 13.4.3关联规则算法 13.5回归分析 13.5.1一元线性回归模型 13.5.2多元线性回归模型 13.5.3非线性回归模型 13.5.4回归分析与相关分析 13.6系统聚类分析 13.6.1概述 13.6.2聚类要素预处理 13.6.3分类统计量 13.6.4系统聚类法 13.6.5其他聚类方法概述 13.7判别分析 13.7.1距离判别 13.7.2费歇判别法 13.7.3贝叶斯判别法 13.7.4判别分析应注意的问题 13.8主成分分析 13.8.1主成分分析的基本原理 13.8.2主成分分析的方法 思考题 第14章数据输出算法 14.1概述 14.1.1地图符号构成元素组成 14.1.2地图符号几何特征 14.1.3基于SVG的地图符号描述模型 14.2状地图符号的绘制 14.2.1圆的绘制 14.2.2椭圆的绘制 14.2.3多边形的绘制 14.2.4五角星的绘制 14.3线状地图符号的绘制 14.3.1平行线绘制 14.3.2虚线绘制 14.3.3短齿线的绘制 14.3.4铁路线的绘制 14.3.5境界线的绘制 14.4面状地图符号的绘制
目录 序 前言 第1章算法设计和分析 1.1概述 1.2算法设计原则 1.3算法复杂性的度量 1.3.1时间复杂性 1.3.2空间复杂性 1.4最优算法 1.5算法的评价 1.5.1如何估计算法运行时间 1.5.2最坏情况和平均情况的分析 1.5.3平摊分析 1.5.4输入大小和问题实例 思考题 第2章GIS算法的计算几何基础 2.1维数扩展的9交集模型 2.1.1概述 2.1.2模型介绍 2.1.3空间关系的判定 2.2矢量的概念 2.2.1矢量加减法 2.2.2矢量叉积 2.3折线段的拐向判断 2.4判断是否在线段上 2.5判断两线段是否相交 2.6判断矩形是否包含 2.7判断线段、折线、多边形是否在矩形中 2.8判断矩形是否在矩形中 2.9判断圆是否在矩形中 2.10判断是否在多边形内 2.10.1射线法 2.10.2转角法 2.11判断线段是否在多边形内 2.12判断折线是否在多边形内 2.13判断多边形是否在多边形内 2.14判断矩形是否在多边形内 2.15判断圆是否在多边形内 2.16判断是否在圆内 2.17判断线段、折线、矩形、多边形是否在圆内 2.18判断圆是否在圆内 2.19计算两条共线的线段的交 2.20计算线段或直线与线段的交 2.21求线段或直线与圆的交 2.22中心的计算 2.23过作垂线 2.24作平行线 2.25过作平行线 2.26线段延长 2.27三画圆 2.28线段打断 2.29前方交会 2.30距离交会 2.31极坐标作 思考题 第3章空间数据的变换算法 3.1平面坐标变换 3.1.1平面直角坐标系的建立 3.1.2平面坐标变换矩阵 3.1.3平移变换 3.1.4比例变换 3.1.5对称变换 3.1.6旋转变换 3.1.7错切变换 3.1.8复合变换 3.1.9相对(xf,yf)的比例变换 3.1.10相对(xf,yf)的旋转变换 3.1.11几说明 3.2球面坐标变换 3.2.1球面坐标系的建立 3.2.2确定新极Q地理坐标中 、 3.3仿射变换 3.4地图投影变换 3.4.1概述 3.4.2地球椭球体的相关公式 3.4.3兰勃特投影 3.4.4墨卡托投影 3.4.5高斯一克吕格投影 3.4.6通用横轴墨卡托投影 思考题 第4章空间数据转换算法 4.1矢量数据向栅格数据转换 4.1.1矢量的栅格化 4.1.2矢量线的栅格化 4.1.3矢量面的栅格化 4.2栅格数据向矢量数据转换 4.2.1栅格坐标与矢量坐标的关系 4.2.2栅格数据矢量化的基本步骤 4.2.3线状栅格数据的细化 4.2.4多边形栅格转矢量的双边界搜索算法 4.2.5多边形栅格转矢量的单边界搜索算法 思考题 第5章空间数据组织算法 5.1矢量数据的压缩 5.1.1间隔取法 5.1.2垂距法和偏角法 5.1.3道格拉斯一普克法 5.1.4光栏法 5.1.5曲线压缩算法的比较 5.1.6面域的数据压缩算法 5.2栅格数据的压缩 5.2.1链式编码 5.2.2游程长度编码 5.2.3块式编码 5.2.4差分映射法 5.2.5四叉树编码 5.3拓扑关系的生成 5.3.1基本数据结构 5.3.2弧段的预处理 5.3.3结匹配算法 5.3.4建立拓扑关系 思考题 第6章空间度量算法 6.1直线和距离 6.1.1直线 6.1.2直线方程 6.1.3到直线的距离 6.2角度量算 6.3多边形面积的量算 6.3.1三角形面积量算 6.3.2四边形面积量算 6.3.3任意二维平面多边形面积量算 6.3.4任意三维平面多边形面积量算 思考题 第7章空间数据索引算法 7.1B树与B+树 7.1.1B树索引结构 7.1.2B+树索引结构 7.2R树结构 7.2.1R树定义 7.2.2R树索引的主要操作算法 7.2.3R*树算法 7.3四叉树结构 7.3.1常规四叉树 7.3.2线性四叉树 7.3.3线性四叉树的编码 7.3.4Z曲线和Hibert曲线算法 思考题 第8章空间数据内插算法 8.1概述 8.1.1几何方法 8.1.2统计方法 8.1.3空间统计方法 8.1.4函数方法 8.1.5随机模拟方法 8.1.6确定性模拟 8.1.7综合方法 8.2分段圆弧法 8.3分段三次多项式插值法 8.3.1三法 8.3.2五法 8.4趋势面插值算法 8.5反距离权重插值算法 8.6双线性插值算法 8.7薄板样条函数法 8.7.1薄板样条函数法 8.7.2规则样条函数 8.7.3薄板张力样条法 8.8克里金法 8.8.1普通克里金法 8.8.2通用克里金法 思考题 第9章Delaunay三角网与Voronoi图算法 9.1概述 9.2Voronoi图 9.3Delaunay三角形 9.4Voronoi图生成算法 9.4.1半平面的交 9.4.2增量构造方法 9.4.3分治算法 9.4.4减量算法 9.4.5平面扫描算法 思考题 第10章缓冲区分析算法 10.1概述 10.2缓冲区边界生成算法基础 10.3缓冲区边界生成算法 10.4线缓冲区边界生成算法 10.5面缓冲区边界生成算法 10.6多目标缓冲区合并算法 思考题 第11章网络分析算法 11.1概述 11.2网络数据模型 11.3路径分析算法 11.3.1单源的最短路径 11.3.2单目标最短路径问题 11.3.3单结对间最短路径问题 11.3.4多结对间最短路径问题 11.3.5次短路径求解算法 11.4最佳路径算法 11.4.1最大可靠路径 11.4.2最大容量路径 11.5连通性分析算法 11.5.1Prim算法 11.5.2Kruskal算法 11.6资源分配算法 思考题 第12章地形分析算法 12.1数字地面模型的生成算法 12.1.1基于离散的DEM规则网格的生成 12.1.2基于不规则三角网的DEM生成 12.1.3DEM数据结构的相互转换 12.2基本地形因子分析算法 12.2.1坡面因子提取的算法基础 12.2.2坡度、坡向 12.2.3坡形 12.3地形特征提取算法 12.3.1地形特征的提取 12.3.2基于规则格网DEM数据提取山脊与山谷线的典型算法 12.4通视分析算法 12.4.1判断两之间的可视性的算法 12.4.2计算可视域的算法 思考题 第13章空间数据挖掘算法 13.1概述 13.2分类算法 13.2.1数据分类的基本过程 13.2.2决策树分类概述 13.2.3决策树的特 13.2.4二叉决策树算法与分类规则的生成 13.2.5决策树分类算法 13.2.6决策树属性的选取 13.2.7改进决策树性能的方法 13.3泛化规则算法 13.3.1概念层次 13.3.2面向属性泛化的策略与特 13.3.3基于规则的面向属性泛化方法 13.4相关分析 13.4.1两要素间的相关分析 13.4.2多要素之间的相关分析 13.4.3关联规则算法 13.5回归分析 13.5.1一元线性回归模型 13.5.2多元线性回归模型 13.5.3非线性回归模型 13.5.4回归分析与相关分析 13.6系统聚类分析 13.6.1概述 13.6.2聚类要素预处理 13.6.3分类统计量 13.6.4系统聚类法 13.6.5其他聚类方法概述 13.7判别分析 13.7.1距离判别 13.7.2费歇判别法 13.7.3贝叶斯判别法 13.7.4判别分析应注意的问题 13.8主成分分析 13.8.1主成分分析的基本原理 13.8.2主成分分析的方法 思考题 第14章数据输出算法 14.1概述 14.1.1地图符号构成元素组成 14.1.2地图符号几何特征 14.1.3基于SVG的地图符号描述模型 14.2状地图符号的绘制 14.2.1圆的绘制 14.2.2椭圆的绘制 14.2.3多边形的绘制 14.2.4五角星的绘制 14.3线状地图符号的绘制 14.3.1平行线绘制 14.3.2虚线绘制 14.3.3短齿线的绘制 14.3.4铁路线的绘制 14.3.5境界线的绘制 14.4面状地图符号的绘制 思考题 主要参考文献

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧