这道题是Google的面试题,参照WigglySortI,本质就是一个坐标映射,只是中位数有等号,映射时候需要小心,博主第一版代码直接用Sort排序,代码击败65.8%,然后参照大牛代码,使用三路快排,速度已经提起来了。和大牛的代码不同的是,大牛采用高大上的宏函数做坐标映射,博主比较笨,理解那个映射公式花了些时间,索性就用了第一版代码的坐标映射,单独写了一个for循环。大牛代码103ms,博主代码102ms,所以坐标映射部分开销是差不多的,可见代码核心还是在三路快排(三指针)上。
PengChao
OpenCV3.1静态库和x86库下载及编译方法
下载
OpenCV自3.1起,不为windows提供编译好的静态库和x86版本库的下载,于是博主自己编译了VC12版本的静态库和x86库,提供下载。
leetcode_Palindrome Partitioning II笔记
Given a string s, partition s such that every substring of the partition is a palindrome. Return the minimum cuts needed for a palindrome partitioning of s. For example, given s = "aab", Return 1 since the palindrome partitioning ["aa","b"] could be produced using 1 cut.
Intel IPP库配置教程
了解OpenCV的同学应该都对IPP加速有所耳闻,IPP库是Intel的加速库,其中集成了多种高性能的操作,基于CPU庞大复杂的指令系统,对程序做并行优化非常有帮助(有点类似于DSP上的数学库),相比之下,另一种并行加速方式openmp就显得捉襟见肘了。这篇博客将帮助我们配置IPP库。
leetcode_Combination Sum II笔记
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. Each number in C may only be used once in the combination. Note: All numbers (including target) will be positive integers. The solution set must not contain duplicate combinations. For example, given candidate set [10, 1, 2, 7, 6, 1, 5] and target 8, A solution set is: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ]
leetcode_Next Permutation笔记
题意:找出比当前排序大一号的排序,如果当前排序就是最大排序,那么将它重拍成最小排序。
leetcode_4Sum笔记
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target. Note: The solution set must not contain duplicate quadruplets. For example, given array S = [1, 0, -1, 0, -2, 2], and target = 0. A solution set is: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ]
实时超像素分割IER方法(CSEO方法)
这篇博客介绍博主事先的CSEO超像素分割方法,CSEO法是目前已知最快的超像素分割算法,可以在640*480*3大小的图像上达到38ms的速度(使用单核CPU@2.5GHz),并且分割区域数与时间无关,是目前超像素分割领域的state-of-art。
OpenCV内封装了主流的SLIC算法,当然,无法实时。这篇博客由于客观原因不提供源码、原理解释,只提供一些论文索引和博主的实验结果,仅供研究者参考。
博主使用Kinect摄像头采集图像数据,将采集的四通道数据转换为三通道数据,然后缩放至920*540(原图为1080p),采集图像和超像素分割在同一个线程中,最终速度为48ms,如果使用640*480,将算法部分从主线程中分离出来,达到论文中所说的38ms是可能的。
TensorFlow学习笔记(三)——Fetch与Feed
TensorFlow的基本数据单元是tensor(张量),如何讲tensor的值取出,又如何在运算过程中向tensor中传入值呢?Fetch与Feed是TensorFlow中关于数据存取的术语,博主就由代码来简要介绍下Fetch与Feed。
TensorFlow学习笔记(二)——基于图会话数学运算工具
TensorFlow使用图来表示计算任务,图中的节点被称之为op(operation的缩写)。TensorFlow程序通常被组织成一个构建阶段,和一个执行阶段。在构建阶段,op的执行步骤被描述成一个图。在执行阶段,使用会话执行图中的op(op就是节点)。简单的说,先给出描述,只在run()方法中执行操作。
Qt实现Metro风格界面:拖动无边框窗口
Qt的GUI功能非常灵活,Metro风格也越来越受欢迎,那么如何使用Qt实现一个Metro风格的界面?
有两点最重要:一是使用Metro风格的素材,二是加入Metro风格的控制。博主近期将之前写过的一个Metro风格的框架开源了,你只需要下载源码,继承QMetro类就可以实现自己的Metro风格界面了。首先,确保你的Qt版本在5.2以上,那么,我们开始吧。
线结构光法测量物体体积:轮廓法三维重建
这是博主两年前参加某比赛的作品,由于近期坑爹的激光课程要写结课论文,博主现在的研究跟光一毛钱关系都木有,于是就把这玩意整理成结课论文了,顺便把整理的内容节选一部分放在博客上,以供参见。
SyntaxNet:Neural Models of Syntax 自然语言神经网络框架
SyntaxNet由TensorFlow实现,本月Google正式开源了这一框架(GitHub),关于这一框架,我们可以参考相关论文。在准备完NPL的基础知识后,博主将在这篇博客介绍这篇论文:Global Normalized Transition-Based Neural Network。该架构的资料还来自谷歌研究博客。
MIT-Deeplearning 学习笔记
今年是DeepLearning诞生十周年,这项技术已相对成熟。这个月,有两本史诗级教科书出炉,这十年的成果做了教科书式的总结,上周MIT的deeplearning教科书定稿,由Ian Goodfellow、Yoshua Bengio、Aaron Courvilla主编,几乎所有深度学习大牛参与其中。初学者学习Deep Learning四处搜集资料和Paper,四处修补知识体系的过程行将成为历史,博主将长期更新博客,对这本书的要点进行阐述。
Visual Gesture Builder姿态动作识别教程
Kinect提供了许多SDK和一些很有用的开发工具,其中就有使用Kinect进行姿态识别的开发工具Visual Gesture Builder。
Visual Gesture Builder被用于构建姿态识别解决方案,生成的模型可用于检测特定动作或姿态。生成的姿态识别模型,可以在C++、C#中被SDK调用,以帮助我们在任意Kinect开发环境下,使用生成的姿态检测模型检测姿态。
这篇博客为Visual Gesture Builder使用教程,以检测举手动作为例,详细介绍该开发工具流程。本教程只进行到生成模型并preview,后面在C++和C#中加载模型进行识别的部分并不在本教程范围内,特此说明。