自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 xcode7 + opencv2.4.9

源文件通过cmake编译好了,主要设置3个东西 1、project的build path 2、targets中的build phase中的link li’b’rary 3、build settings的c++编译器设置,std的不兼容,不要用gun的! 第三个如果不改的化会找不到链接的程序报link error

2016-04-22 10:33:36 760

原创 Opencv + Qt(VS编译器MSVC版本)的使用

这里使用的MSVC版本的QT,这个版本的好处是可以用vs编译器。 **步骤:** 1、opencv2.4.9 由于原来编译过VS用的源代码,现在直接把里面的bin、include、lib拿出来即可: 注意dll把debug和release版本的都拿出来2、在.pro文件中添加路径:INCLUDEPATH+=D:\opencv\QtOpencv\include\opencv\D:\open

2016-04-19 16:18:18 4243 3

原创 graph cut使用

graph cut下载地址 maxflow3.01使用方法://初始化GC图 Graph< typename captype, typename tcaptype, typename flowtype > g;这里的3个type必须要相同,不然会报unresoveled external的错误//增加节点,返回标号 int vtxInd = g.add_node()//增加n-links,这

2016-04-16 11:29:46 1765

原创 对Kernel函数的理解

问题:在低维空间线性不可分,需要映射到高维空间使其线性可分。方法:找到这个映射P:(x,y) ->(A,B,C) eg:P: A = x2x^2   B= 2√xy \sqrt{2}xy    C=y2y^2然而在分类器寻找的过程中我们通常需要计算内积< P1,P2 >,如果遇到上面的问题,朴素的想法是首先找到映射P,然后将P1,P2计算出来,然后计算< P1,P2 >,但这样的计算量是非常

2016-04-12 15:28:28 973

原创 最长回文:LeetCode:5. Longest Palindromic Substring

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.解:朴素的想法是以i为中心,不断向2边寻找回文,用数组

2016-04-09 15:35:22 314

原创 欧拉通路332. Reconstruct Itinerary

解: 欧拉通路:遍历所有的边的一条路径 存在的充要条件: 2个点一个点出度大于入度(起始点),一个点入度大于出度(终止点) 或 所有点出度=入度(欧拉回路) 欧拉回路:遍历所有的边并回到初始点的一条回路 存在的充要条件: 所有点出度=入度(欧拉回路)此题即遍历所有的边的一条路径,并不一定要回到JFC,所以是求欧拉通路问题,用dfs其实就是套圈法: 1、用dfs一延边找点,由于题目说要

2016-04-05 14:09:09 539

原创 LeetCode334. Increasing Triplet Subsequence

Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.Formally the function should: Return true if there exists i, j, k such that arr[i] < arr[j] <

2016-04-02 15:25:45 317

原创 LeetCode 336. Palindrome Pairs

Given a list of unique words. Find all pairs of distinct indices (i, j) in the given list, so that the concatenation of the two words, i.e. words[i] + words[j] is a palindrome.Example 1: Given words =

2016-04-02 11:32:47 1122

原创 如何求最大公约数gcd

利用gcd(a,b) = gcd(a,a % b)其中a > b.int gcd(a,b){ return b == 0? a : gcd(a,a % b);}这也是辗转相除法,可以证明: 假设gcd(a,b) = c,则a = mc,b = nc,且n、m互质 令a%b = r,则 r + x * nc = mc =》r = (m - x*n)c =》所以r也有c这个因子,由

2016-03-30 11:05:08 564

原创 LeetCode 338 :Counting Bits

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary representation and return them as an array.Example: For num = 5 you sh

2016-03-30 10:46:17 262

原创 c指针和malloc的运用注意

在进行链表动态创建空间的时候,如果是通过create创建,那么需要注意函数传指针的时候也是传值不传地址,即int Create(Node * p){ p = (Node*)malloc(sizeof(Node));}这样回到主程序p任然是NULL,因为在Create里,p只是一个指向原来p地址的指针,即p并不是main里面的p,要使得原来的指针内容改变,必须是:int Create(No

2016-03-28 15:18:45 536

原创 ubuntu有N卡的双显卡情况下安装

在安装界面的其他设置下选择nonmodel,再进行安装

2016-03-24 15:07:58 875

原创 动态规划

解动态规划最重要的步骤个人觉得是找出描述子问题的数据结构,记住里面存储的是子问题的最终结果,而不是一个中间值。问题一:硬币找零假设有几种硬币,如1、3、5,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。解:找子结构,设sum[N]为找N元所需的最小硬币数,则若最后一个是找的3元,则sum[N - 3]一定是找N-3元钱所需硬币数的最优解,即:            sum[N] =

2016-03-21 19:41:21 1406

原创 隐马尔科夫学习(HMM)

一、简介隐马尔科夫比马尔科夫多的一个东西就是随机变量不止一个了,而是分为了多个随机变量: 1、观测变量Ot:此变量仅由St决定,即仅有当前状态决定。 2、隐变量St:此变量满足马尔科夫性,可能有多个。 那么由此多了混淆矩阵(Confusion Matrix):即P(St -> Ot),就是隐状态到观测状态转移矩阵。其他的如初始状态,状态转移矩阵和马尔科夫一样。二、3个问题1、评估问题。

2016-03-15 17:14:40 650

原创 Python windows下安装scipy 和numpy

在windows下很多库的使用都需要numpy+MKL,(MKL:Intel® Math Kernel Library ),楼主原来安装的直接是pip的numpy而没有加MKL,导致在使用scipy的时候出现numpy.distutils.system_info.NotFoundError: no lapack/blas resources found直接在 http://www.lfd.uci

2016-03-09 15:16:18 682

原创 PatchMatch分析

1.介绍  作为纹理合成的方法,PatchMatch利用图片中的其他区域来恢复边缘区域,想法很合理。并且在实现上巧妙的利用了offset这样一个信息,使得计算上也不算复杂。此为Barnes et al 的得意之作,去年他在我方圆3米的距离坐了2个月都没和他交流,真是暴殄良机,心塞。人总是失去了才知道珍惜- -。1.1块(Patch)  图像一片正方形的区域,如3x3,5x5,此为PatchMatch

2016-03-05 10:51:52 19863 7

原创 泊松融合

泊松融合 Possion方程: 左边是梯度,右边是一个函数值,一般对图像这样处理,φ为一张图像的某个部分(背景),f为另一个图像的某个部分(需要嵌到背景里的东西),这样解方程的意思就是让φ这部分图像的梯度变化是f,那么这样就能保留f图像的变化特征,然后再加上狄利克雷条件: 这样是指定上面的微分方程的边界是背景φ,使得融合的时候边界平滑。 泊松融合的内涵即: 上面的变分方程的

2015-11-10 16:16:42 1579

转载 HOG特征提取matlab代码

HOG特征提取,HOG特征是图像梯度方向的直方图,且是对window进行的处理,是局部feature,提取的是一个window的特征,参数主要有winsize,blocksize,cellsize,runpatchsize,其中win最大,里面包含多个block,block里面一般包含4个cell。在进行人体检测的时候,就是通过不断滑动窗口来进行特征的匹配然后找到人所在的位置。

2015-09-06 18:59:05 25936 5

原创 计算未旋转2矩形相交面积

int find_intersect_area(Rect a, Rect b){ //(x11,y11)(x12,y12)为矩形a对角线上的端点 //(x21,y21)(x22,y22)为矩形b对角线上的端点 int x11 = a.x; int x12 = a.x + a.width; int y11 = a.y; int y12 = a.y +

2015-07-07 18:10:37 610

原创 opencv截取矩形框中的图像

#include <opencv\cv.h>#include <opencv/highgui.h>#include <iostream>using namespace std;using namespace cv;Mat org,img,tmp,dst;Rect rect;void on_mouse(int event, int x, int y, int flags, void* ustc

2015-06-24 10:24:37 6902 1

原创 最大流和最小割:Edmonds_Karp算法

最大流:从s->t可以通过的最大流量 最小割:将图用一条直线切断,并将s和t分到不同的2边,此为一个割,割会经过图中的边,这些边的容量(只算从s->t方向的)总和为c,当c最小时,此割即为最小割.可以证明,最大流=最小割的容量!(这就是Ford_Fulkerson定理).Ford_Fulkerson方法此为求最大流的基本方法,通过在残留网络中找增广路径不断迭代来求解最大流,在寻找增广路径的时候会有

2015-06-23 19:50:33 3090

原创 Bellman-Ford算法和Dijkstra算法

Bellman-Ford算法是通过Relax边来实现的,由于最短无负权回路的路径应该最多有V-1条边,所以一共执行V-1次Relax操作即可,而且注意,每次Relax操作都只是基于上一次Relax操作之后的图,和这次Relax中已经Relax了的节点毫无关系(这个是重点!). 检查负权回路原理:若有负权回路,则经过V-1次relax之后relax还能减小消耗(路径值不会收敛)bool graph:

2015-06-23 09:53:33 2102

原创 DFS应用:图的拓扑排序以及Kosaraju强连通分量算法

图的DFS算法对于每一个图节点u有2个重要的时间d[u]和f[u],分别代表找到u的时间(其变为灰色节点的时间)以及u完成的时间(其变为黑色节点的时间). f[u]越大可能其在最上面(树根处),所以要等其所有子孙都完成其才能完成.1、拓扑排序对于一个图,找拓扑排序的方法就是通过按照完成时间f[u]的递减顺序即为一个拓扑排序:void graph::topology(int start,queue<

2015-06-21 11:30:02 660

原创 FLOYD算法

此为动态规划的思想,通过比较dist[i][j]与dist[i][k] + dist[k][j]来选择,而且k必须是外层循环,因为其是以k为子问题的,如果k在最里层,则很多子问题都没有算到。图的表示是矩阵表示,无直接边则为INF,自己到自己的距离为0.//dist初始时有边的为正值,无边为INF,mid初始时都为0;mid的值应该是j的直接前驱,即i->……->mid->jvoid graph::

2015-06-09 16:18:03 374

原创 c++ matlab混合编程时mxArray 内存泄露问题

对于mxArray在创建完后若使用完一定要注意回收空间,不然会memory leak.如果是mxstruct,只要对其中的field进行了赋值操作,那么其原先的field一定要先进行memory的回收!eg: c++中要调用out_params = color_tracker3(params,params) 这样一个函数,而params 和out_params都是在c++程序中跟新和管理的。其中p

2015-05-16 15:09:14 1521

原创 Vertex cover problem(NP)算法是多项式的?

3.1. Procedure. Given a simple graph G with n vertices and a vertex cover C of G, if C has no removable vertices, output C. Else, for each removable vertex v of C, find the number ρ(C−{v}) of removable

2015-05-13 16:49:10 1197

原创 Matlab的矩阵存储和opencv mat的区别

在matlab中是按列存储的,其[x y]对应于opencv的为[纵坐标 横坐标],所以对于opencv的Rect(int x,int y,int width,int height)结构而言,在matlab中应该是pos[y,x,height,width]. 一张宽720 长526的图片在matlab中为526*720. 总而言之:matlab中第一个坐标代表的是长(纵轴、y),第二个坐标代

2015-05-07 10:45:39 2774 1

原创 vs2013调用matlab函数

法一(常用方法):使用engine。 添加matlab环境,这个网上都有,然后使用 Engine *ep; if(!(ep = engOpen(""))) { cout << "ERROR"; }打开engine,下面主要介绍如何将参数传进去(主要是c++中的类): mxCreateStructMatrix函数:mxArray *mxCreateSt

2015-05-05 19:05:58 5883 1

原创 图以及DFS和BFS

图:struct Edge{ Point start; Point end;};class graph{private: int edge[1000][1000]; Edge edge_set[1000]; int Pnum = 0; int Enum = 0; Point pset[1000];public: graph() {

2015-04-28 18:45:46 365

原创 matlab 2014b 调用 vs2013 + opencv混合编程配置、mat 与 mxarray的转换、matlab在vs2013中调试

一、编译 首先设置mex -setup,然后进行文件的编译,有现成的.m类似脚本的代码如下: mex -g 命令开启在vs下可以调试,否则不能调试。% This cppmake.m is for MATLAB% Function: compile c++ files which rely on OpenCV for Matlab using mex% Modified by Jessica

2015-04-26 19:13:05 2066

原创 寻找最近点对

问题:在空间中有n个点,寻找空间中最近的2个点。 法一:遍历,O(n^2) 法二:分治算法: 将点分为左右两半,分别找到最近的2个点,然后考虑交叉位置的点对中的最小距离,在这3者中取最小的那个。O(nlogn)。步骤: 1. 按照x轴排序 2. 找到中间点,分别进行处理 3. 2边处理完成,将进行“merge”过程,先将点按照y轴升序,然后向上找7个点算距离比较即可,如果只看另一侧的话应

2015-04-07 09:40:15 832

原创 凸包算法分析

1、对于toleft的计算,是通过叉积的定义来进行的,叉积代表面积,且方向为顺时针,那么如果大于0,则认为k在ab向量的左边. 对于2个向量a(x1,y1),b(x2,y2),将其进行行列式的计算,第三维补0,计算过程如下: 而2个二维向量可以由3个点a(x1,y1),b(x2,y2),k(x3,y3)相减得到,然后我们可以得到计算公式://通过向量叉乘符号来进行定义 ,必须严格大于

2015-04-05 20:38:01 1689

原创 dijkstra算法

dijkstra算法

2015-04-05 20:32:12 730

原创 sort简单分析

排序算法分析(都以从小到大为例): 1、Insertsort:(原地排序) 最坏情况:从大到小排列(逆序),6,5,4,3,2,1, 比较(移动次数要乘以3)次数=n*(n - 1) / 2; 最好情况:从小到大排列(正序),1,2,3,4,5,6,比较次数 = n; 平均情况:与最坏情况一样,为Θ(n^2). 算法稳定。void insertsort(unsigned long *a,i

2015-04-05 20:26:20 1203

原创 opencv codebook学习

codebook学习

2015-04-05 11:13:14 2282 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除