- 博客(21)
- 资源 (7)
- 收藏
- 关注
原创 梯度下降法
原文地址:http://www.letao.ai/?p=301在机器学习、图像拼接、slam等算法中,最优化方法是非常重要的环节。这篇文章主要记录下梯度下降法。后面还会就牛顿法,拟牛顿法和高斯牛顿法等最优化算法等相关的文章。梯度下降法或者最速下降法,是求解无约束最有问题的一种最常用方法。它是迭代算法,每部都需要求解目标函数的梯度。函数是上的函数,它具有一阶连续偏导数。梯度下降法要求解的...
2018-11-13 22:40:57 287
原创 模板匹配
原创文章,版权所有。转载请注明出处:http://www.letao.ai/?p=292在机器视觉中,视觉定位是非常重要的一块。商业视觉软件包, 像mil、halcon、cognex等,都会包含视觉定位模块。模板匹配是视觉定位中常用的算法,这里主要讲下基于灰度互相关的匹配算法, Normalized Cross Correlation, NCC。灰度互相关的数学思想是,将二维图像,简化...
2018-11-04 10:40:14 877
原创 Hough变换之Hough直线检测
原创文章,保留所有版权。转载请注明出处:http://www.letao.ai/?p=282Hough变换的主要思想是,基于已知边缘点的,对所有可能的参数空间中的参数进行投票。在正确的参数取值处,形成峰值,最终得到要求的结果。常用的基于Hough变换检测的有,Hough直线检测、Hough圆检测,和广义Hough变换。Hough直线检测直线如下图所示:Hough直线检测,是...
2018-11-03 14:31:28 1247
原创 CentimetersToPoints函数出错
在word开发中,碰到CentimetersToPoints函数调用出错的问题,总是提示为指定的错误。解决办法为修改CentimetersToPoint函数导入msword.olb后的CentimetersToPoint函数如下float _Application::CentimetersToPoints(float Centimeters){ float result; sta
2013-11-13 09:40:30 2059 1
转载 Unity3D脚本架构
LateUpdate():如果启用,会在每一帧中被调用。在所有Update函数被调用之后才执行。有利于程序的有序执行。(例如:跟随摄像机就应该在LateUpdate执行,因为它跟随的对象也许需要在Update中执行) OnPreCull():摄像机在场景中剔除对象前被调用。剔除确定哪些对象是在摄像机中是可见的。OnPreCull是在剔除这个过程之前被调用的,此消息被发送到所有附加了脚本的摄
2013-10-31 10:53:21 1326
原创 unity3d中图像导出到OpenCV中
首先从相机或者Texture中获得存储图像块 Color32[] pixels = Texture2D.GetPixels32(); //或者WebCamTexture.GetPixels32 ();再使用GCHandle获得块的指针 GCHandle pixelHandle = GCHandle.Alloc(pixels, GCHandleType.Pinned);
2013-10-28 15:59:02 4864
原创 Qualcomm AR之创建简单工程
一、创建QCAR工程参考https://developer.vuforia.com/resources/dev-guide/step-2-compiling-simple-project1.将QCAR package导入Unity3d工程。2.增加ARCamera到scene中。ARCamera的Inspector如下QCARBehaviour类中的参数:Max
2013-10-28 15:43:13 1786
原创 Qualcomm AR之目标识别、跟踪
Qualcomm AR中在QCARManagerImpl类实现的图像处理,并进行识别、跟踪物体,得到目标物体的姿态(位置和旋转量)。所有的更新操作,在QCARManagerImpl.Update()中实现。主要使用到的相关的数据结构ImageHeaderData图像头结构体public struct ImageHeaderData { public in
2013-10-22 11:49:42 1844
原创 Qualcomm AR之Vuforia SDK框架
本文主要来之Vuforia sdk的官方文档。https://developer.vuforia.com/resources/dev-guide/vuforia-ar-architectureVuforia AR sdk主要有以下几个核心部分。1.Camera。获取图像。2.Image Converter。将从相机获得的图像格式转换为Vuforia处理需要的格式
2013-10-14 17:24:56 4479
原创 unity3d中的BlendShape混合动画
一.unity3d中加载模型时,网格顶点发生变化的解决办法。unity3d中加载mesh网格为三角网格,目前unity3d直接导入模型时还存在一些bug,会使得模型的顶定点数发生改变。解决的办法:在project中点击已经加载的模型,在Import Setting中将Normals设为None,点击Apply。然后再将Normals设为Import,重新加载,再点击Apply。
2013-09-12 15:43:30 12099
原创 opencv中标定函数calibrateCamera
世界坐标系的三维点投影到成像坐标系中的二维点的投影公式如下:其中(X,Y,Z)为世界坐标系中的三维点;(u,v)为成像面坐标系中的二维点;A为相机的内参数矩阵:(cx,cy)为主光轴点,一般为图像的中心;fx和fy为焦距;[R|t]为相机的外参数矩阵:R为旋转矩阵,t为位移矩阵;上述公式的简单推理过程如下考虑到镜头畸变其中,k1,k2,k3,k4,k5和k6为径向畸变,p1和p2为轴向畸变。在op
2013-09-09 12:15:15 40742 16
原创 unity3d鼠标移动、旋转物体
为了从不同角度观察物体,需要使用鼠标改变物体的位置及角度。在unity3d中Input.GetMouseButton()获得鼠标键,Input.GetAxis()函数获得鼠标的移动的方向和距离,其中Mouse X表示X方向,Mouse Y表示Y方向,Mouse ScrollWheel表示中键滚动距离。private float rotationX; private float rot
2013-09-02 15:03:34 5391
原创 二叉查找树
二叉查找树是中已经排好序的二叉树,也称二插排序树二叉查找树的插入void insertTree(node*& tree,char elem) //递归插入{ if (!tree) { tree=(node*)malloc(sizeof(node)); tree->data=elem; tree->lchild=NULL; tree->rchild=NULL;
2012-10-07 18:29:51 401
原创 二叉树深度、平衡二叉树的判断
递归求取二叉树深度int depthBiTree(node* tree){ if (!tree) return 0; int ldepth=depthBiTree(tree->lchild); int rdepth=depthBiTree(tree->rchild); return ldepth>rdepth?ldepth+1:rdepth+1;}平衡二叉树的判断和求二叉
2012-10-06 20:50:53 586
原创 完全二叉树的判断
利用队栈,判断是否为完全二叉树bool isFullBiTree(node* tree){ deque q; if (!tree) return true; node* t=tree; q.push_back(t); while (!q.empty()) { t=q.front(); q.pop_front(); if (t) { q.push_bac
2012-10-06 20:36:23 467
原创 二叉树重构
二叉树可以根据 先序和中序 或者 中序和后序进行重构。但是不能够根据先序和后序结果进行重构。如先序为123,后序为321,这颗二叉树是不唯一的。已知先序和中序对二叉树进行重构node* rebuildFromPreAndInOrder(char* preOrder,char *inOrder,int size){ if (size<=0) return NULL; node* r
2012-10-06 04:08:00 507
原创 二叉树最近公共父节点
在二叉树中,查找两个子节点的最近公共父节点。实现方法:首先找到每个子节点的路径,然后再比较两个路径最后一个相同节点,既最近公共父节点。二叉树的数据结构如下typedef struct _node{ char data; struct _node* lchild; struct _node* rchild;}node;查找子节点的路径,利用链表list来实现bo
2012-10-06 02:09:46 606
原创 二叉树的基本操作
本文就二叉树的基本操作进行总结包括二叉树的建立、递归遍历、非递归遍历、层序遍历等二叉树的结构体如下typedef struct _node{ char data; struct _node* lchild; struct _node* rchild;}node;1.二叉树的建立void create(node*& tree){ char data;
2012-10-06 02:00:58 473
原创 大小端系统判断
大端系统(Big-endian):数据的低字节存放在高地址中。如power pc,aix等。小端系统(Little-endian):数据的低字节存放在低地址中。 如arm,x86,amd等。判断大小端系统的代码:int checkCPU( ){ union w { int a; char b; } c;
2012-09-24 10:55:53 688
原创 二分查找
近一段时间开始找工作了,将一些经典的算法复习一遍,并且编码实现下,便于再次复习。二分查找原理相对简单,不多说int binarySearch(int a[],int len,int goal){ int low=0; int high=len-1; while(low<=high) { int middle=(low+high)/2;
2012-09-19 11:47:56 269
原创 C/C++面试题
1.求下面函数的返回值(微软)int func(x){int countx = 0;while(x){countx ++;x = x&(x-1);}return countx;}假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操
2010-05-15 14:22:00 375
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人