自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LYS_SONG的专栏

做思想的先行者

  • 博客(45)
  • 资源 (4)
  • 收藏
  • 关注

原创 一个很好很好用的前景检测算法库

https://github.com/andrewssobral/bgslibrary 包含各种前景检测算法(背景建模),而且统一了接口,所有算法都是用同样的接口,调用简单,亲测,很好用,推荐给大家。

2017-03-17 12:04:41 1434

原创 STL 多维向量的定义以及初始化

基本工作: #include using namespace std;一维向量:vector<int> vector_1D_1;//只定义向量vector<int> vector_1D_2(n);//定义的同时初始化大小vector<int> vector_1D_3(n,m);//定义的同时初始化大小为n,元素初始值为mvector<int> vector_1D_4;ve

2016-12-15 11:20:21 2068

原创 最新版libvibe++移植到Windows

vibe是一种像素级的前景检测算法,实时性高,内存占有率低,前景检测准确率高。但是会出现“鬼影”,当然基于对鬼影的处理,也会有相应的对vibe算法的改进。 把下面三篇文章看明白,基本就会掌握vibe算法的过程: 《 ViBe: a powerful random technique to estimate the background in video sequences》 《Backgrou

2016-12-07 22:40:51 2106 2

原创 关于广义特征值问题的求解[泛化特征值问题][扩展特征值问题]

最近接触到LDA(线性判别分析)、LFDA(局部性性判别分析)、FLDA(Fisher线性判别分析)、MMDA(多模式判别分析)等关于特征提取的方法,其中都涉及到了同一个问题——Fisher Criterion(Fisher判别准则),该准则要求同时使得类内离散度最小和类间离散度最大,问题描述如图所示:这样就引出了广义的特征值问题,对于该问题的求解,也就进一步转换为求解上面的非对称矩阵

2016-09-22 10:42:42 6627 2

原创 可控人脸隐私(使用子空间分解方法独立的改变人脸图片属性(如年龄性别种族))

本文主要介绍了新加坡国立大学的这篇论文【Controllable Face Privacy】http://xueshu.baidu.com/s?wd=paperuri%3A%281ab7cf379721e75cc432186d3268dcc0%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Fieeexp

2016-09-20 19:23:58 1000

原创 为什么通过设置ROI无法修改图像(opencv)

项目中的一个小功能,需要实现视频特定区域的背景替换,遂写下这样一个函数:void bgReplace(Mat& dst, Mat&bg, Rect rec){ assert(dst.size()==bg.size()); assert(dst.depth() == bg.depth()); dst(rec) = bg(rec).clone();//可深可浅}功能,用rec

2017-12-04 16:56:23 484

原创 C++左值右值和移动语义

最近看了很多相关博客,自己总结一下,单纯根据在等号左边还是右边明显判断太过粗糙,我的大致理解如下: 判断object是左值还是右值(三种方法): (1)object能否被取地址,即&object是否合法; (2)object能否被赋值,即object=other_object; (3)object在当前语句执行完就销毁还是会继续存在,即临时对象还是持久对象;

2017-08-13 14:28:11 529

原创 兔子繁衍问题求解(阿里巴巴2017在线编程题)

题目描述(大概): 在一个荒岛,一个猎人带去了一对刚出生的兔子(一公一母),兔子年龄为n,当兔子年龄大于2岁时每年会生下一对兔子,直到死去的前一年,每年末,当岛上兔子大于10对时,猎人会带走年龄最大的两对兔子,求y年后岛上兔子年龄总和,这里为简便记,只求最终的兔子总对数。思路一:采用面向对象的思想,一个兔子为一个对象,兔子有成员变量:年龄、最大年龄,兔子有成员函数:繁衍函数、死亡函数;如此,维护一

2017-08-08 22:29:17 6428 1

原创 理解c++STL regex_research()

简单说一下自己的理解,就谈一下这个重载版本吧:函数如下 bool regex_search (const basic_string<charT,ST,SA>& s, match_results<typename basic_string<charT,ST,SA>::const_iterator,Alloc>& m, const basic_regex<char

2017-07-25 23:29:45 1315

原创 关于C和C++编译器引发的一系列问题

参考资料http://blog.csdn.net/a125930123/article/details/53558041 __cplusplus是一个预定义宏,只要你的文件后缀名是.cpp,则该宏便有了。但是,我们通常需要在C++文件了只用一些C的函数,由于C++的多态特性,同名函数可以执行不同的功能,为了加以区分,则会在编译的时候修改函数名,而这和C编译的结果就不一样了,从而导致通常在C++文件

2017-07-19 10:28:25 549

原创 理解C++枚举变量

enum MyEnum { aa=8, bb, cc, dd, ee , }; MyEnum tes = ee; cout <<tes;对于这样一个枚举类型定义,经过测试,aa之后的元素取值为8,9,10,11,12。 但是,当枚举类型定义为enum MyEnum {

2017-07-18 14:55:43 1849

原创 C++跨域重载实践

最近再看设计模式,之前看了一遍《大话设计模式》,这次就重新选择了一本秦小波著的《设计模式之禅》,在第二章讲里氏替换原则时(15页),使用的是Java的例子,当子类出现和父类同名的函数(doSomething())时,明天再写

2017-07-02 00:03:21 524

原创 理解C++中重载、重写和隐藏

为了后面说重载,这里就先说隐藏吧 隐藏: 函数和被隐藏函数在不同类,暂且为父类和子类吧,只要子类出现和父类同名的函数(只需要名字相同),则父类中该函数在子类中被隐藏,也即不可访问,除非是用于替换被声明为需要父类参数的地方(即子类此刻被隐式或显示转换为父类,可想想里氏代换这个东西)。重载: 重载函数和被重载函数必须在同一个可访问区域,这里的可访问区域可以结合隐藏部分来理解,重载

2017-07-01 11:44:33 295

原创 理解单例模式(C++)

单例模式是面试过程中经常被问到的一个模式,所以,自己写了些运行了一下,谈谈自己的感受://sigle.h#include<iostream>using namespace std;class Item{private: Item(){} static Item* p; ~Item();public:

2017-06-03 10:08:55 307

原创 C++类 内存对齐和类大小理解

至于为什么会有这个问题,我就不说了。 首先,默认的块对齐长度是4字节,此外也可以通过#pragma pack(x)修改,同时,自己修改完之后记得使用#pragma pack()恢复默认值。此外,又分了集中情况: (1)如果有虚函数,则会存储虚函数表的地址(仅一个地址,4字节或8字节),改地址是存放在类内存的最开始的地方。 (2)如果出现比x大的非静态成员变量(静态成员变量不算在类内存里面,而是

2017-04-05 09:25:53 760

原创 一个程序看懂C++ switch 执行流程

先上代码:#include <iostream>using namespace std;int main(){ int a = 0,sum = 0; for (; a <=3;a++) { switch (a) { default:sum += 4; case 1:sum += 1; cas

2017-02-27 20:49:23 2179 4

原创 对C++11条件变量的理解(逻辑)

之前对条件变量一直抱有疑惑,通过互斥锁已经能够保证同一时刻只有一个线程访问共享区资源了,那还要用条件变量干什么呢?说到这里,解惑来源于这篇文章c++11线程之条件变量condition_variable,互斥锁只能保证线程不同时访问共享区资源,但是访问的顺序是杂乱无章的,而条件变量是为了保证线程操作按顺序进行。 还有,条件变量std::condition_variable::wait(std::

2017-02-17 22:53:05 3197

原创 二叉排序树实现(C++)

最近要找工作了,着手实现了二叉排序树,这里主要说一下我的主要收获:加深了对指针的理解,尤其是二重指针。如果你还没发现二重指针的奥妙,说明你还没懂C++,当然,你懂了也可能没懂。下面是我的源码:#include<memory>#include<iostream>using namespace std;class bitreenode{public: int data; bi

2017-02-08 20:40:32 634

原创 C++双向链表实现

纯属无聊,自己实现了一下双向链表,主要操作有头插法尾插法建表,从前往后和从后往前遍历,其他的功能暂时没有实现,因为只是无聊,但是唯一的收获就是:真的理解了头结点(尾节点)的重要性和便捷性,最初是从大话数据结构得知的这个问题,不明觉厉,所以自己动手,果然发现,只有头指针真的会有很多不方便,其中奥秘,各位慢慢体会。 以下是我的实现,只有头指针,没有头结点:#include<memory>#inclu

2017-01-17 18:29:16 931

原创 C++链栈实现

这只是个很基础的联系,实现了链栈的后进先出功能,纯属无聊。#include<memory>#include<iostream>#include<string>using namespace std;class linkstacknode{public: int data; linkstacknode* next; linkstacknode(){ next = n

2017-01-17 10:21:57 906

原创 关于opencv直方图计算函数 calcHist()的channels参数的理解

一下附上该函数的声明:void calcHist(const Mat* arrays, int narrays, const int* channels, InputArray mask, OutputArrayhist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=

2016-12-19 09:47:47 1272

原创 关于已经初始化的vector使用assign函数后出现元素访问越界

因为assign()函数会在赋值的时候调整原向量的size,而capacity保持不变。 以下是C++文档 中的具体描述: Assign vector content Assigns new contents to the vector, replacing its current contents, and modifying its size accordingly.

2016-12-16 15:27:22 1464

转载 C++ STL 一般总结

http://www.cnblogs.com/biyeymyhjob/archive/2012/07/22/2603525.html二、STL的六大组件容器(Container),是一种数据结构,如list,vector,和deques ,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器; 迭代器(Iterator),提供了访问容器中对象的方法。例如,可以使用一对迭代器指定l

2016-12-15 10:35:52 518

原创 CCF交通规划C++版源码分享(201612-4)

问题描述   G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。   建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些条

2016-12-14 17:22:03 1122 1

原创 CCF201612-4交通规划 C++(内存超限制)

问题描述   G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。   建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些条

2016-12-13 18:24:57 900

原创 CCF火车票座位分配C++源码(非100)

include includeincludeusing namespace std; int arr[20][5];void init() { int i = 0, j = 0; for (; i < 20; i++) { for (; j < 5; j++) { arr[i][j] = 0;

2016-12-12 21:03:52 2329 2

原创 CCF201604-3路径解析C++未完善源码

问题描述   在操作系统中,数据通常以文件的形式存储在文件系统中。文件系统一般采用层次化的组织形式,由目录(或者文件夹)和文件构成,形成一棵树的形状。文件有内容,用于存储数据。目录是容器,可包含文件或其他目录。同一个目录下的所有文件和目录的名字各不相同,不同目录下可以有名字相同的文件或目录。   为了指定文件系统中的某个文件,需要用路径来定位。在类 Unix 系统(Linux、Max OS X、

2016-12-09 16:08:29 584

原创 看起来很舒心的高性能线性代数运算库在线文档

eigen3.3.0 : http://eigen.tuxfamily.org/dox/group__SparseQuickRefPage.html

2016-12-01 16:13:02 481

原创 CCF俄罗斯方块C++版

试题编号:201604-2试题名称:俄罗斯方块时间限制:1.0s内存限制:256.0MB问题描述  俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。  游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落

2016-11-13 19:05:35 714

原创 CCF炉石传说题目代码详解C++版(类封装通俗易懂)

试题编号:201612-3试题名称:炉石传说时间限制:1.0s内存限制:256.0MB问题描述  《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游

2016-11-13 11:10:27 2537

原创 关于CvEMParams、CvEM未声明的错误

最近做目标跟踪,用到EM 算法,很自然地,机器学习除了仅有的Mahalanobis、K均值在CXCORE中,人脸检测算法在CV中,其他的都在ml库中,其实,有些情况不是这样的,期望最大化算法在后来的opencv库已经被迁移到了opencv2/legacy/legacy.hpp,如果再用ml库则会提示找不到,当然这只是EM的C版本,C++版本仍然在ml 库中。所以,使用CvEMParams、Cv

2016-11-04 14:03:21 575

原创 opencv库C版和C++版的函数和变量命名差异分析

最初,opencv库是用C语言开发的,内存管理复杂,各种类型的强制转化(因为memorystorge不知道里面存的是什么东西),还有就是面向对象结构,各种函数名错综复杂,数据与操作关联不够密切,所以C++版本应运而生,C++大部分只是重新封装了C的内容,但是函数名不一样了,但是与之前又有一定的联系。首先说整体的命名变化:C++无论是变量还是函数名都没有了Cv/cv开头。其次说变量:C版本都

2016-10-27 21:55:58 960

原创 探讨C++字符串截止符‘\0’

接触到编程,字符串是必不可少的了,现在就说说常见的字符串输出显示异常字符的问题:以下是一个从文本文件读取字符串的程序:#include#include#includeint main(){std::fstream fs("d://lys.txt");char ls[11];/*=(char*)calloc(sizeof(char),11);*///std::st

2016-10-11 10:36:45 1549

转载 C++内存控制

第一部分 C++内存分配//------------------------------------------------------------------------------------------------一。关于内存 1、内存分配方式  内存分配方式有三种:  (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整

2016-10-10 10:49:37 459

原创 关于OPENCV ROI的使用

最近在写一个多摄像头下的多目标跟踪系统,需要自己通过人体检测+人脸识别来确定初始跟踪目标,很显然,这里会有很多地方会用到ROI,我的思路是先用人体检测检测出人体部分,再对人体部分应用人脸检测,再进行人脸识别,确定身份之后再判断是否跟踪该目标,每一次检测出的区域都会用到ROI,这里需要说的是,这里有几个图像函数,cvCopy()、cvCopyImage()、cvCloneImage(),如果设置了R

2016-10-09 21:35:55 1020 1

原创 C++友元类使用之前置声明(定义变量)

今天项目使用到了友元类,于是便先试着搞个简单地使用例子#includeclass b;class a{private:int value;protected:void funprotected();public:friend b;a(int x);//b bclass;void funpublic();};a::a(int x)

2016-09-29 10:23:33 2729 1

转载 C++string到char*的转换

转自:http://blog.sina.com.cn/s/blog_786ce14d01014lpr.html今天在做一个视频跟踪的程序修改,用到了opencv的图像加载函数cvLoadImage(),该函数需要一个const char*类型的图片地址,而我只有一个string类型的地址变量,所以,这就需要转换一下,因为string是一个类,并且有一个默认的构造函数string(cha

2016-09-28 15:40:46 426

转载 11个强大的Visual Studio调试小技巧(转)

原文地址http://blog.jobbole.com/33865/?utm_source=rss&utm_medium=rss&utm_campaign=11%25e4%25b8%25aa%25e5%25bc%25ba%25e5%25a4%25a7%25e7%259a%2584visual-studio%25e8%25b0%2583%25e8%25af%2595%25e5%25b0%258f%2

2016-09-28 09:04:28 852

原创 关于STL容器中vector特定元素的删除问题

问题描述:给定一组整形数,使用vector容器存储,现在要求删掉其中值大于某个值的元素。即:初始数组为{8,6,4,2},要求删除其中大于5的元素。这里使用网上给出的一些方法(错的),主要参考这里http://zhidao.baidu.com/question/286951956.htmlvector price = { 8, 6, 4, 2 };vector::iterato

2016-09-27 15:39:53 3543

原创 vassitx使用技巧(用了就再也没法放弃)

1)shift+alt+r,选定内容改名,用得不多,但很实用(改过名的都知道) 可以批量改名2)Shift + Alt + F - 查找选定的内容,比VS2010自带的爽,不信你选定一个函数试试,而且它还有一个clone result功能,(不用不知道) 显示出所有结果的位置3)Alt + O - 在.h与.cpp文件中实现相互转换 这个主要就是声明与定义了,很方便

2016-09-27 09:43:54 1914

海康摄像头解码显示

海康摄像头解码显示,单摄像头,想做个各摄像头同时解码,但是卡住了

2018-06-15

基于粒子滤波的目标跟踪技术研究(Research on Target Tracking based on Particle Filter)

目标跟踪技术一直以来都是计算机视觉、图像处理领域的研究热点,其在 智能监控、视觉导航、智能交通、人机交互、国防侦察等领域具有重要应用价 值,是武器系统的核心技术之一。虽然近二十年来众多学者对目标跟踪技术进 行深入研究,但由于跟踪初始阶段目标模板获取不准确、目标在像面内运动规 律的复杂性、目标观测特征的实时变化、目标所处背景的复杂干扰、遮挡等因 素,导致当前的目标跟踪技术仍不能满足军、民领域的需求,因此仍需对其进 行深入研究。 目标跟踪问题可以定义为已知目标先验信息,在获取目标新的观测信息后, 迭代求取目标状态矢量后验概率密度分布的过程,因此可将目标跟踪过程建模 为贝叶斯估计。本论文主要以粒子滤波为跟踪框架,重点对其动态模型及观测 模型进行研究;同时针对目标检测、目标分割算法进行研究,试图将目标检测 与分割算法与基于粒子滤波的跟踪算法相融合,进而达到减小跟踪误差、提高 跟踪精度的目的。本论文主要创新工作及研究成果如下: 1. 粒子滤波的动态模型是对目标运动方式的描述,若模型描述与目标实际 运动方式差异较大,必然导致预测过程后粒子无法准确覆盖目标真实位置,跟 踪误差逐渐累积甚至跟踪失败。本文针对机载环境对地面目标跟踪的特点,提 出加速度双步动态模型( TSA ),其中包含自由模型与保守模型两部分,自由 模型将目标速度建模为非零均值的高斯马尔科夫过程,该模型通过参数调整可 以较好描述 RW 模型与 NCV 模型之间的运动形式;保守模型对目标当前时刻 速度进行估计,替代自由模型中高斯马尔科夫过程的目标速度平均值。实验结果表明,该模型对目标在像面内大幅度变速运动有较好的预测能力。 2. 粒子滤波的观测模型决定粒子权重,直接影响跟踪精度,较为经典的观 测特征为目标颜色、轮廓等特征。核密度估计直方图是一种经常被采用的特征, 其关键技术为核函数的选取。本文基于 Snake 轮廓提取算法,构建非对称核函 数,融合目标的颜色信息,进而得到目标的核密度估计直方图作为粒子滤波的 观测模型。该模型不但可以较好描述目标的观测信息,在目标观测特征变化时 可实时更新目标模板。该模型的构建算法可以达到实时,具有实际工程应用价 值。 3. 对于背景复杂的目标跟踪问题,上述非对称核函数的构建算法会出现较 大误差。为此,本论文将图像分割算法融入到粒子滤波跟踪算法之中,首先提 出多方向 GrabCut 算法,该算法相比传统分割算法具有更强的分割鲁棒性;进 而提出基于该分割算法的 MGC-PF 粒子滤波算法。实验结果表明,该算法可以 较好解决因目标处于复杂背景而引起跟踪精度较差的问题。 4. 为设计能够更好与跟踪算法相融合的 GrabCut 分割算法,充分利用跟踪 过程目标的时间相关性及空间相关性,本文将随机森林分类器融合到 GrabCut 分割算法之中,提出适于融入目标跟踪算法中的 RF-GC 分割算法,最终提出 RF-GC-PF 粒子滤波跟踪算法。实验结果表明,该算法可以较好解决跟踪过程 中由于目标运动规律复杂、目标观测特征实时变化、背景复杂等综合因素引起 跟踪精度较差的问题。 本论文试图解决目标跟踪过程中由于目标运动规律复杂、目标观测特征实 时变化、复杂背景等因素导致的跟踪误差较大、精度较差的问题,对在传统跟 踪算法中融入图像分割、目标检测算法的这一发展趋势进行了研究、分析与展 望。

2017-01-06

多目标跟踪vs+opencv

先用背景差分完成目标提取,将运动目标的相关信息放入到链表中,通过帧差完成对多目标的跟踪,达到实时性的要求 运动目标的相关信息存放于结构体中,可以在此基础上判断目标的动作行为跟踪基本框架,opencv编写,利用背景差分,质心法可以跟踪多个目标,并分配ID号,记录行动轨迹,可用于车辆道路等,大家可以参考学习下,效果有待改进,不同的视频会有不同的效果。

2016-11-06

Deep learning book

权威的深度学习电子书,英文版,从最初的回归应用,到各种神经网络的开发,深度模型的训练,晋升到深度学习的大牛,本书对神经网络有很细致的讲解。

2016-04-21

空空如也

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

TA关注的人

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