摘要:
还是计算几何, 多边形的核可以这样理解:这个核为原多边形内部的一个多边形,站在这个叫核的多边形中,我们能看到原多边形的任何一个位置。 算法步骤如下: 1.根据原多边形最大和最小的x,y初始化核多边形,就是个矩形。 2.计算多边形当前处理的点的凹凸性。 3.用当前点与其后继点构成直线,判断当前点的前驱 阅读全文
posted @ 2020-09-10 15:03
一杯清酒邀明月
阅读(304)
评论(0)
推荐(0)
摘要:
这个算子算是图像历史上第一个特征点提取算法了,1977年提出的,很简单,拿来练手很合适。 算法原理如下: 1.选取一个合理的邻域遍历图像,这里是5*5邻域的。在邻域中依次计算,垂直,水平,对角与反对角四个相邻像素灰度的差的平方和,作为该邻域特征值。 大致就是下面这个样子: 公式: 这里k是窗口的半径 阅读全文
posted @ 2020-09-10 15:02
一杯清酒邀明月
阅读(507)
评论(0)
推荐(0)
摘要:
我手机上有一个软件实现了很多图像滤镜,挺有意思,我打算都尝试一下。 这个滤镜主要是实现老照片效果。 代码很短,我就不详细介绍了。 原图: 处理后效果: matlab代码如下: 1 clear all;close all;clc; 2 3 img=imread('lena_rgb.jpg'); 4 [ 阅读全文
posted @ 2020-09-10 15:01
一杯清酒邀明月
阅读(413)
评论(0)
推荐(0)
摘要:
1 clear all; 2 close all; 3 clc; 4 5 %生成两组已标记数据 6 randn('seed',1); 7 mu1=[0 0]; 8 S1=[0.5 0; 9 0 0.5]; 10 P1=mvnrnd(mu1,S1,100); 11 12 mu2=[0 6]; 13 S 阅读全文
posted @ 2020-09-10 14:59
一杯清酒邀明月
阅读(385)
评论(0)
推荐(0)
摘要:
注:这里的练习鉴于当时理解不完全,可能会有些错误,关于神经网络的实践可以参考我的这篇博文 这里的代码只是简单的练习,不涉及代码优化,也不涉及神经网络优化,所以我用了最能体现原理的方式来写的代码。 激活函数用的是h = 1/(1+exp(-y)),其中y=sum([X Y].*w)。 代价函数用的是E 阅读全文
posted @ 2020-09-10 14:57
一杯清酒邀明月
阅读(1058)
评论(0)
推荐(0)
摘要:
需要看下生成的数据在地球上的经纬度具体位置。 投影为墨卡托投影。 1 clear all; 2 close all; 3 clc; 4 5 load coast; 6 a=load('out.txt'); %自己的经纬度数据 7 8 axesm mercator 9 plotm(lat,long); 阅读全文
posted @ 2020-09-10 14:55
一杯清酒邀明月
阅读(1630)
评论(1)
推荐(0)
摘要:
最近在分析一些数据,就是数据拟合的一些事情,用到了matlab的polyfit函数,效果不错。 因此想了解一下这个多项式具体是如何拟合出来的,所以就搜了相关资料。 这个文档介绍的还不错,我估计任何一本数值分析教材上讲的都非常清楚。 推导就不再写了,我主要参考下面两页PPT,公式和例子讲的比较清楚。 阅读全文
posted @ 2020-09-10 14:53
一杯清酒邀明月
阅读(795)
评论(0)
推荐(0)
摘要:
这个算是ICP算法中的一个关键步骤,单独拿出来看一下。 算法流程如下: 1.首先得到同名点集P和X。 2.计算P和X的均值up和ux。 3.由P和X构造协方差矩阵sigma。 4.由协方差矩阵sigma构造4*4对称矩阵Q。 5.计算Q的特征值与特征向量。其中Q最大特征值对应的特征向量即为最佳旋转向 阅读全文
posted @ 2020-09-10 14:44
一杯清酒邀明月
阅读(556)
评论(0)
推荐(0)
摘要:
计算步骤如下: 下面使用书中的练习y=exp(a*x^2+b*x+c)+w这个模型验证一下,其中w为噪声,a、b、c为待解算系数。 代码如下: 1 clear all; 2 close all; 3 clc; 4 5 a=1;b=2;c=1; %待求解的系数 6 7 x=(0:0.01:1)'; 8 阅读全文
posted @ 2020-09-10 14:42
一杯清酒邀明月
阅读(1224)
评论(0)
推荐(0)
摘要:
上一篇博客中介绍的高斯牛顿算法可能会有J'*J为奇异矩阵的情况,这时高斯牛顿法稳定性较差,可能导致算法不收敛。比如当系数都为7或更大的时候,算法无法给出正确的结果。 Levenberg-Marquardt法一定程度上修正了这个问题。 计算迭代系数deltaX公式如下: 当lambda很小的时候,H占 阅读全文
posted @ 2020-09-10 14:41
一杯清酒邀明月
阅读(998)
评论(0)
推荐(0)
摘要:
算法思想:如果一个像素与它邻域的像素差别较大(过亮或过暗) , 那它更可能是角点。 算法步骤: 1.上图所示,一个以像素p为中心,半径为3的圆上,有16个像素点(p1、p2、...、p16)。 2.定义一个阈值。计算p1、p9与中心p的像素差,若它们绝对值都小于阈值,则p点不可能是特征点,直接pas 阅读全文
posted @ 2020-09-10 14:39
一杯清酒邀明月
阅读(490)
评论(0)
推荐(0)
摘要:
本篇我们使用SVD计算点集配准。 下面是《视觉slam十四讲》中的计算方法: 计算步骤如下: 我们看到,只要求出了两组点之间的旋转,平移是非常容易得到的,所以我们重点关注R的计算。展开关于R的误差项,得: 注意到第一项和R无关,第二项由于R'R=I,亦与R无关。因此,实际上优化目标函数变为: 接下来 阅读全文
posted @ 2020-09-10 14:38
一杯清酒邀明月
阅读(649)
评论(0)
推荐(0)
摘要:
这里用到的还是最小二乘方法,和上一次这篇文章原理差不多。 就是首先构造最小二乘函数,然后对每一个系数计算偏导,构造矩阵乘法形式,最后解方程组。 比如有一个二次曲面:z=ax^2+by^2+cxy+dx+ey+f 首先构造最小二乘函数,然后计算系数偏导(我直接手写了): 解方程组(下图中A矩阵后面求和 阅读全文
posted @ 2020-09-10 14:37
一杯清酒邀明月
阅读(1271)
评论(0)
推荐(0)
摘要:
通常我们使用的最小二乘都需要预先设定一个模型,然后通过最小二乘方法解出模型的系数。 而大多数情况是我们是不知道这个模型的,比如这篇博客中z=ax^2+by^2+cxy+dx+ey+f 这样的模型。 局部加权线性最小二乘就不需要我们预先知道待求解的模型,因为该方法是基于多个线性函数的叠加,最终只用到了 阅读全文
posted @ 2020-09-10 14:35
一杯清酒邀明月
阅读(927)
评论(0)
推荐(0)
摘要:
问题是这样,如果我们知道两个向量v1和v2,计算从v1转到v2的旋转矩阵和四元数,由于旋转矩阵和四元数可以互转,所以我们先计算四元数。 我们可以认为v1绕着向量u旋转θ角度到v2,u垂直于v1-v2平面。 四元数q可以表示为cos(θ/2)+sin(θ/2)u,即:q0=cos(θ/2), 阅读全文
posted @ 2020-09-10 14:34
一杯清酒邀明月
阅读(1977)
评论(0)
推荐(2)
摘要:
欧拉角转旋转矩阵公式: 旋转矩阵转欧拉角公式: 旋转矩阵转四元数公式,其中1+r11+r22+r33>0: 四元数转旋转矩阵公式,q0^2+q1^2+q2^2+q3^2=1: 欧拉角转四元数公式: 四元数转欧拉角公式: matlab代码如下: 1 clear all; 2 close all; 3 阅读全文
posted @ 2020-09-10 14:32
一杯清酒邀明月
阅读(4770)
评论(0)
推荐(0)
摘要:
下面三个公式分别是一次、二次和三次贝塞尔曲线公式: 通用的贝塞尔曲线公式如下: 可以看出,系数是由一个杨辉三角组成的。 这里的一次或者二次三次由控制点个数来决定,次数等于控制点个数-1。 实现的效果如下: 代码如下: 1 clear all; 2 close all; 3 clc; 4 5 p=gi 阅读全文
posted @ 2020-09-10 14:31
一杯清酒邀明月
阅读(1609)
评论(0)
推荐(0)
摘要:
DBSCAN全称Density-Based Spatial Clustering of Applications with Noise,是一种密度聚类算法。 和Kmeans相比,不需要事先知道数据的类数。 以编程的角度来考虑,具体算法流程如下: 1.首先选择一个待处理数据。 2.寻找和待处理数据距离 阅读全文
posted @ 2020-09-10 14:30
一杯清酒邀明月
阅读(1777)
评论(0)
推荐(1)
摘要:
算法思路是首先建立kd树,然后找到每个点距离最近的点的距离,对距离求和再求平均即可。 代码如下: 1 clear all; 2 close all; 3 clc; 4 5 pc = pcread('rabbit.pcd'); 6 pc = pcdownsample(pc,'random',0.1); 阅读全文
posted @ 2020-09-10 14:28
一杯清酒邀明月
阅读(460)
评论(0)
推荐(0)
摘要:
最近接触点云比较多,如果把图像投影到点云应该挺有意思。 首先需要载入图像,然后做个球或其他什么形状的点云,这里可以参考球坐标公式。 最后通过pcshow将像素输出到点云上即可。 原图: 投影后的点云: 代码如下: 1 clear all; 2 close all; 3 clc; 4 5 img = 阅读全文
posted @ 2020-09-10 14:27
一杯清酒邀明月
阅读(772)
评论(0)
推荐(0)
浙公网安备 33010602011771号