- 博客(40)
- 资源 (5)
- 收藏
- 关注
转载 C++ map的基本操作和用法
1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次
2014-11-08 19:02:02
287
转载 Gabor滤波简介和实现(Matlab,OpenCV)
1. 简介 Gabor变换属于加窗傅立叶变换,Gabor函数可以在频域不同尺度、不同方向上提取相关的特征。Gabor 滤波器的频率和方向类似于人类的视觉系统,所以常用于纹理识别。在空间域,二维Gabor滤波器是一个高斯核函数和正弦平面波的乘积,具体的: 复数: 实部:
2013-09-19 10:42:30
747
转载 Opencv提取背景 GMM
OpenCV的video module中包含了几种较为常用的背景减除方法,其中混合高斯模型(Gaussian of Mixture Models, GMM)方法效果较好。 常用的目标检测方法:1)帧间差分;2)背景减除;其中背景减除方法的关键在于建立一个鲁棒的背景模型(背景图像),常用的建立背景模型方法有:1)均值法;2)中值法;3)滑动平均滤波法;
2013-09-04 21:42:52
2905
转载 C++ CLR C#3层结构
用C++写核心的算法,用C++/CLR写界面(逻辑层)与核心算法的粘合层,用C#写界面或者逻辑这是相当好的架构,没有必要把C++学到太死,C#写界面和逻辑等等对性能没有要求的代码效率还真是很高的,用起来也很顺手!首先建好一个解决方案CSharpCppClrCppDll,里面包含有三个项目CppDll、CppClrLib、CSharpCallC
2013-08-25 08:21:59
1671
转载 C++ 随机数生成
原文 http://www.cnblogs.com/finallyliuyu/archive/2010/10/11/1848130.html一、C++中不能使用random()函数==================================================================================本文由青松原创并依GPL-V
2013-08-25 08:13:52
316
原创 类静态成员数组初始化(包含类中使用枚举)
1 原则,类内声明,类外定义2.举例类的定义 包括4个枚举和4个字符串数组Configure.hclass Configure{public: enum DataProviderSets { CIFAR10 = 0, MNIST = 1, }; enum LossFunctions { CrossEntropy = 0,
2013-08-24 14:05:54
1008
原创 用bitbukect 和 tortoiseHG 建立版本控制
1 https://bitbucket.org 上建立一个自己的账户2下载 tortoiseHG3 在 https://bitbucket.org create a repositories.4 在HG上建立新的repositories5.输入URL地址,上传本地文件6 下载本地文件从网站上7 主要merge 可以删除重新下载8注意同步
2013-08-23 22:44:26
422
转载 HOG 算子计算
最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。 首先我们进入HOGDescriptor所在的头文件,看看它的构造
2013-05-07 16:58:37
549
转载 Omp 使用
使用多核CPU,并行编程超简单! OpenMP提供了对并行算法的高层的抽象描述,程序员通过在源代码中加入专用的pragma来指明自己的意图,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。但是,作为高层抽象,OpenMP并不适合需要复杂的线程间同步和互斥的场合。OpenMP的另一个缺点是不能在非共享内存系统(如计算机集群)上使用,在这样的系统上,M
2013-05-07 10:37:12
381
转载 CFile 读取写入 和 archive 流读取
cfile的文件操作一般分为三个步骤第一步:文件打开[cpp] view plaincopyCFile file; if(0 == file.Open("1.txt", CFile::modeCreate | CFile ::modeNoTruncate | CFile ::modeReadWrite )) /
2013-05-03 11:15:06
348
转载 一个文件夹下重命名文件
怎样批量重命名一个文件夹下的文件名?——此方法是在不借助外在批量重命名工具的情况下实现的比如文件夹下有如下的文件:abcde.jpg,bcdef.jpg,cdefg.jpg,defgh.jpg,......你想都给命名成为001.jpg,002.jpg,003.jpg,004.jpg,......999.jpg这个应该怎么弄呢?最佳答案:@echo
2013-04-28 16:50:41
328
转载 数据大端小端转化
当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述。字节排序按分为大端和小端,概念如下大端(big endian):低地址存放高有效字节小端(little endian)
2013-04-20 21:59:12
360
转载 用 STL vector 来创建二维数组
以前我要建立一个二维数组,总是使用int N=5, M=6;vector > Matrix(N);for(int i =0; i Matrix[i].resize(M);}上面多写了三行,就是为了指定 Matrix 的烈数。今天才发现,可以用更简单的方法完成上面的工作下面的一行就可以代替上面的四行vector > Matrix(N, vector(M));
2013-03-15 11:44:43
409
转载 Lambda 表达式 C++
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下: [函数对象参数] (操作符重载函数参数) mutable或exception声明 ->返回值类型 {函数体} 可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、->返回值
2013-03-15 11:17:27
293
转载 vector 寻找最大值位置
vector dv;假设dv 的数值已经赋值好了。最大值所在的位置是pos = (int) ( max_element(dv.begin(),dv.end()) - dv.begin() );说明:max_element(dv.begin(),dv.end()) 返回的是vector::iterator, 相当于指针的位置,减去初始指针的位置 就得到我们需要的。
2013-03-02 22:04:12
4888
转载 randome forests and on-line random forests
Random Forests (随机森林)随机森林的思想很简单,百度百科上介绍的随机森林算法比较好理解。在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 "Random Forests" 是他们的商标。 这个术语是1995年由贝尔实验室的Tin K
2012-10-06 10:59:29
1515
转载 bootstrps bagging boosting
bootstrps bagging boosting这几个概念经常用到,现仔细学习了一下:他们都属于集成学习方法,(如:Bagging,Boosting,Stacking),将训练的学习器集成在一起,原理来源于PAC学习模型(Probably Approximately CorrectK)。Kearns和Valiant指出,在PAC学习模型中,若存在一个多项式级的学习算法来识别一组概念,并且识
2012-10-05 20:17:28
545
转载 C++ 日期以及时钟
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念
2012-10-05 18:36:24
1112
原创 数字转化为标准string(opencv)
format 函数Returns a text string formatted using the printf-like expression.string format( const char* fmt, ... )Parametersfmt – printf -compatible formatting specifiers.The function act
2012-08-28 12:14:06
989
转载 MAX FLOW 算法
关于Yuri Boykov and Vladimir Kolmogorov 于2004年提出的max flow / min cut的算法的详解http://blog.csdn.net/euler1983/article/details/5959622这篇文章说的是Yuri Boykov and Vladimir Kolmogorov在2004年提出的一种基于增广路径的
2012-08-28 11:14:19
1557
转载 C++ Dll文件制作样例
c++制作dll文件http://www.360doc.com/content/12/0215/14/8484669_186802727.shtmldll文件的c++制作1、首先用vs2005建立一个c++的dll动态链接库文件,这时,// DllTest.cpp : 定义 DLL 应用程序的入口点。//#include "stdafx.h"//#include "
2012-07-23 22:02:37
584
转载 store Mat data opencv
Mat mat_eye = Mat::eye(Size(10,10), CV_8UC1); FileStorage fs(".\\vocabulary.xml", FileStorage::WRITE); fs fs.release(); 在另一处,需要加载这个矩阵数据。代码如下:FileStorage fs(".\\vocabulary.xml", FileS
2012-07-16 14:22:15
717
转载 MAT CVMAT IPLIMAGE
IplImage, CvMat, Mat 的关系opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化。而CvMat和IplImage类型更侧重于“图像”,opencv对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。在opencv2
2012-07-11 15:48:16
599
转载 opencv访问数据元素
在OpenCV中有三种方式访问矩阵中的数据元素:容易的方式,困难的方式,以及正确的方式。以下先讲容易的方式和困难的方式。容易的方式:最容易的方式是使用宏CV_MAT_ELEM( matrix, elemtype, row, col ),输入参数是矩阵的指针,矩阵元素类型,行,列,返回值是相应行,列的矩阵元素,例如:CvMat* mat = cvCreateMat(5,5,CV_32
2012-07-11 10:26:15
1674
原创 C++ 扩大文件缓冲区
C++文件流默认的文件缓存是4096字节,有时候根据需求可能要扩大或减少。此时可以使用类方法rdbuf->pubsetbuf(buf, size);NOTE 1:这里要是char缓冲区,如果是静态数组,大小有限制,如果动态,很危险。NOTE 2:意义未必很大,未必很提高速度。C++中rdbuf重定向流的经典例子:#include #include int mai
2012-07-10 17:30:22
832
转载 转换 opencv 数据
在mfc c++ 以及opencv 编写程序当中,很多常用的类型转换,现在总结一下。(注意加相应的头文件,这里不罗嗦)提纲:1. Mat ---> Iplimage2. Iplimage ---> CvvImage3. Mat ---> vector or vector 4. vector or vector ---> vector> or vector>5. v
2012-07-10 13:08:00
793
转载 opencv MAT数据操作
1.存取单个像素值最通常的方法就是img.at(i,j) = 255;img.at(i,j)[0] = 255;2.用指针扫描一幅图像对于一幅图像的扫描,用at就显得不太好了,还是是用指针的操作方法更加推荐。先介绍一种上一讲提到过的for (int j=0; j<nl; j++){ uchar* data= image.ptr(j);
2012-07-09 15:24:06
5577
转载 opencv存取像素值操作汇总
1.存取单个像素值最通常的方法就是img.at(i,j) = 255;img.at(i,j)[0] = 255;如果你觉得at操作显得太笨重了,不想用Mat这个类,也可以考虑使用轻量级的Mat_类,使用重载操作符()实现取元素的操作。 cv::Mat_ im2= img; // im2 refers to image im2(50,100)=
2012-07-09 15:23:21
74
转载 OpenCV MAT数据操作
我这里测试了三种操作Mat数据的办法,套用流行词,普通青年,文艺青年,为啥第三种我不叫2b青年,大家慢慢往后看咯。普通青年的操作的办法通常是M.at(i, j)文艺青年一般会走路线M.ptr( i )[ j ]暴力青年通常直接强制使用我第40讲提到的M.data这个指针实验代码如下: t = (double)getTickCount(); Mat img1(
2012-07-09 11:43:41
113
转载 Adaboost OpenCV
第一部分:算法的产生1996年Yoav Freund在Experiments with a New Boosting Algorithm中提出了AdaBoost.M1和AdaBoost.M2两种算法.其中,AdaBoost.M1是我们通常所说的Discrete AdaBoost;而AdaBoost.M2是M1的泛化形式.该文的一个结论是:当弱分类器算法使用简单的分类方法时,boosting的效
2012-07-04 12:54:09
3036
转载 vector C++
vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。简单的使用方法如下: vector test;//建立一个vector test.push
2012-06-28 13:02:06
610
转载 遍历读取指定文件夹下指定类型的所有文件
遍历读取指定文件夹下指定类型的所有文件经常碰到朋友,尤其是初学者对指定文件夹下指定类型文件的读取很困惑,这里,我把自己经常用的程序贴出来,供初学者学些;#include "stdafx.h"#include "windows.h"#include #include #include "iostream"using namespace std;typedef
2012-06-28 08:07:46
389
原创 读取XML的库 Libxml2 library
Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License. We can use it to read/write d
2012-06-27 22:22:05
409
转载 SIFT 算法
SIFT算法由D.G.Lowe 1999年提出,2004年完善总结,论文发表在2004年的IJCV上:David G. Lowe, "Distinctive image features from scale-invariant keypoints,"International Journal of Computer Vision, 60, 2 (2004), pp. 91-110论文
2012-06-27 13:07:51
4784
转载 C++遍历文件夹文件
一、先介绍一个结构 WIN32_FIND_DATA typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; // 文件属性 FILETIME ftCreationTime; // 文件创建时间 FILETIME ftLastAccessTime; // 文件最后一次访问时间 FILETIME
2012-06-26 22:35:09
6067
转载 assert 函数用法
assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行. 原型定义: #include "assert.h" void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通
2012-06-26 20:15:09
778
转载 Graph cut related resource
【简介】Graph Cuts 不等于 graph cut(如 min cut、normalized cut、RatioCut), 是最近在计算机视觉中研究和应用比较多的energy minimization(能量函数最小化)优化算法,典型的用于stereo matching, image restortion, texture synthesis等应用。这个优化算法用来解 markov R
2012-06-26 16:12:55
632
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人