0%

在C++中,有一种特殊的成员函数也就是构造函数,只要创建类类型的新对象时,都要执行构造函数。构造函数的工作是保证每个对象的数据成员具有合适的初始值。下面主要想说三个问题:默认构造函数、初始化列表、显式构造函数。

Read more »

首先声明一下,这篇不是入门教程,前提是你了解了static的作用以及C++中的virtual函数的实现机制。:)

先来几个问题,大家思考一下,类的析构函数可以为virtual吗?类的构造函数可以为virtual吗?类的构造函数可以为static吗?类的析构函数可以为static吗?virtual函数可以为static吗?

static关键字的作用可以简单概括为:应用于全局变量时候,应用于局部变量的时候,应用于函数的时候以及在C++中应用于类的时候。前面三种写的都比较多,我今天主要写下static应用在C++类的时候,以及virtual关键字。

static在类中的运用简单来说两种:静态数据成员和静态成员函数。

Read more »

不知道从什么时候,怀旧风在社会上盛行起来。但是怀旧往往伴随着对现实的不满与无奈。很久以前看过的一句话,记忆总是倾向于记住美好的东西,所以你说,回忆太美。

对于一个艺术家来说,只有当他去世的时候,它的作品才会被世人怀念。如果在巅峰时候退出,很可能被封神。比如MJ,比如黄家驹。

有人说如果朴树在生如夏花之后退出乐坛,那么可能成为下一个黄家驹。但是一个音乐人只要活着,是不可能离开音乐。所以,他回来了。是的,朴树他回来了,十一年之后,带着他的新歌。

Read more »

这次来讲棋盘格标定方法。方法很简单,用相机对棋盘格从不同角度拍多幅图像,然后计算摄像机参数。关于标定的原理和前面分析都一样,就是对应点对应约束方程,对参数矩阵进行求解。只不过对于棋盘格上的点假定它们的Z坐标都是0(一个平面上)。具体分析可以参考《Learning Opencv》那本书,中文翻译《学习OpenCV》,好在opencv已经将其集成进去了。下面主要写如何求摄像机内参。

Read more »

这次要介绍的Tsai提出的基于RAC的定标方法是计算机视觉相机标定方面的一项重要工作,该方法的核心是利用径向一致约束来求解除(相机光轴方向的平移)外的其它相机外参数,然后再求解相机的其它参数。基于RAC方法的最大好处是它所使用的大部分方程是线性方程,从而降低了参数求解的复杂性,因此其定标过程快捷,准确。

Read more »

上周写了摄像机标定的原理,这次主要来谈谈几种摄像机标定的方法。

一、直接线性变换(DLT变换)

直接线性是将像点和特点的成像几何关系在齐次坐标下写成透视投影矩阵的形式:

Read more »

打算写一个三维重建(3D Reconstruction)的专题,不是介绍理论,而是如何动手写一个三维重建系统。那么什么是三维重建呢?简单来说,就是将物体的三维的位置,也就是三维坐标,重建出来,当然说到位置那么当然是相对于某一坐标系的。三维重建方法有很多种,我打算写的是基于双目的重建。打个比方,人的双眼就是一个双目系统,我们能准确地判断一个物体距离我们有多远就是因为双目的原因。三维重建主要包括三个关键模块:摄像机标定、图像对应点确定、三角重建。这次主要介绍摄像机标定。

Read more »

事情是这样的,我女朋友在百度的网络推广部门,上个周五的时候集体加班,原来上面布置了一个任务。简单的说,就是输入一个url,然后截全屏(可以用PrintScreen),浏览器拉到最下面(或者end键),再截一次屏,并把再次截屏保存。据说url一共有6k个,全部人工截屏。嗯,想想就可怕。

我第一次想到的是以前在百度实习的时候用过superjs做的自动化检测或许有用,但是具体怎么做的时候也没有什么清晰的概念。昨天晚上九点的时候突然想起来这件事了,于是就去搜索了一下,但是令人失望的是没有找到。然后我想到以前在linux下面的终端操作,浏览打开页面可以用下面的终端命令。

1
firefox www.legendtkl.com

Read more »

在前一篇文章的结尾中提到了动态规划算法,这里再简要的说下吧。网上关于动态规划的讨论也比较多,看来看去,大部分人还是充当了搬运工。还是建议《算法导论》吧。下面简要总结一下。

动态规划的思想是对于每个子问题只求解一次,将其结果保存在一张表中,从而避免每次遇到各个子问题时重新计算答案(这个描述感觉有点像搜索)。动态规划算法的两个要素:最优子结构和重叠子问题。如何判断呢?简单来说,如果问题的一个最优解中包含了子问题的最优解,则该问题具有最优子结构。注意这时候一般来说也可以用贪心算法来解,但是贪心算法与动态规划算法有一个本质的区别:贪心算法的思想是局部最优解,而动态规划算法的思想是全局最优解。那么重叠子问题是什么意思呢?用来解决原问题的递归算法可反复地解同样的子问题。典型地,不同的子问题数是输入规模的一个多项式。当一个递归算法不断地调用同一问题时,我们说该最优问题包含重叠子问题。下面主要来讨论一下典型的动态规划问题——背包问题以及一点扩展。

Read more »

前面一篇的面试题主要考察一些小trick,见过了就很容易,没见过的话可能就很难。今天介绍一类问题,也是经常作为训练的题目。给定整数数组A[1…n],判断是否可以从中选出若干个数,使它们的和恰好为K。比如A[]={1,2,4,7},K=13。应该返回2,4,7。

Read more »