MATLAB的边缘检测函数中隐含的细化(非极大值抑制)算法

前段时间做了一个车牌检测识别的项目,我的任务是将MATLAB中的算法移植成C++代码。在车牌区域提取的过程中,用到了水平方向的Sobel算子检测垂直边缘,一开始我直接把MATLAB中的

bw = edge(I, 'sobel', 'vertical');

语句改写成OpenCV中的

7d[......]

展开阅读

MATLAB中的函数句柄及其应用

1.函数句柄的创建

函数句柄(function handle)是MATLAB中的一类特殊的数据结构,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++),或者函数引用(Perl)。作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传[......]

展开阅读

使用Boost库编写一个并行的QuickSort排序算法

从大三下学期开始接触C++,到现在有一年多的时间了,直到最近这段时间,才了解到Boost这么强大的库。其中的Boost::Thread库将多线程相关操作进行了简约的RAII(Resource Acquisition Is Initialization)封装,将线程的管理交给了thread对象的构造和[......]

展开阅读

关于多维数组,指针,及函数参数你所必须知道的一切

1.多维数组的数据类型:

首先,数组是数组,指针指针,数组名不是指针。

不解?正常。不少C语言老师常常告诉学生:“数组名就是指向数组首元素的指针。”这句话只说对了一半,数组名的确可以当作指针使用,在不少的场合,数组名会被隐式地转换为指针。但是数组不是指针,对于一个数组,int a[5],它[......]

展开阅读

Windows系统下搭建基于Sublime Text 2文本编辑器的MATLAB开发环境

本文将介绍如何在Sublime Text 2文本编辑器中搭建MATLAB开发环境。当然,在Notepad++之类的编辑器上应该能以类似的方式实现。

1.最强(至少我认为)跨平台文本编辑器Sublime Text 2

我以前用得最多的文本编辑器是Notepad++,轻量,免费,功能齐全,可是U[......]

展开阅读

矩阵的奇异值分解(SVD)的证明

线性代数中有许多种因式分解,例如建立在高斯消元基础上的LU分解,建立在Gram-Schmidt正交化基础上的QR分解,建立在特征值与特征向量基础上的矩阵相似对角化,但是上述因式分解对矩阵都有一定的要求,例如LU分解要求矩阵可逆,相似对角化要求矩阵有线性无关的特征向量。但是,所有的矩阵都必然能够进行一[......]

展开阅读

用向量空间思想理解傅里叶变换

Gilbert Strang的《线性代数导论》对向量空间的描述以及对线性代数四个基本定理的证明优雅精妙,最近重读此书,受益良多。由于我本科是电子信息工程专业,信号与系统这门课是我们专业的基石,傅里叶变换是信号与系统分析的最核心的数学方法之一。首次接触的时候我和其他同学都对其数学原理感到一头雾水,[......]

展开阅读

利用线性拟合对人脸图像进行光照补偿

人脸识别系统常被运用于较复杂的背景和光照环境中,这将直接导致人脸样本的类内散布加剧并超过类间散布,从而使识别率下降,所以即使是正确检测获取的人脸图像也不能直接用于识别工作,它必须经过预处理,对光照进行一定程度的补偿。本文将介绍基于光照平面求差和直方图均衡化的光照补偿算法。

光照平面求差法在19[......]

展开阅读