- 博客(32)
- 资源 (1)
- 收藏
- 关注
转载 c++中什么类型的成员变量只能在构造函数的初始化列表中进行
1 好多书籍都建议我们直接使用初始化列表为成员进行初始化,为什么呢?我想原因有二:①考虑到效率②有些成员不得不这么做(const,引用)为什么使用初始化列表就效率呢?其实也不一定,对于内置类型,在函数体内赋值和在初始化列表中初始化两者的效率是等同的。但是为了美观和一致性的问题,《Effective C++》作者建议我们还是用初始化列表进行。但是这也不是在所有情况下都是必须
2013-07-22 18:22:35 2548 1
转载 _cdecl、_stdcall、_fastcall和_thiscall整理
1._cdecl是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数 从右到左依次入栈,这些参数由调用者清除,称为手动清栈(由调用者把参数弹出栈)。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数的函数只能使用该调用约定)。被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 _cdecl是
2013-07-22 12:24:29 727
转载 进程与线程的一个简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。
2013-07-20 17:25:24 738
转载 Windows程序设计_Chap03_窗口与消息_学习笔记
Windows程序设计_Chap03_窗口与消息_学习笔记――By: Neicole(2013.06.07)01. 开篇 《Windows程序设计》的第3章,讲述了在Windows编程中很基础同时也是很重要的内容,第一个是Windows窗口是什么,怎么创建,第二个是Windows中的消息,Windows的消息机制。这次学习笔记,以窗口和Windows消息
2013-07-20 17:02:01 926
转载 SSE技术
作者:Alex Farber出处:http://www.codeproject.com/cpp/sseintro.aspSSE技术简介Intel公司的单指令多数据流式扩展(SSE,Streaming SIMD Extensions)技术能够有效增强CPU浮点运算的能力。Visual Studio .NET 2003提供了对SSE指令集的编程支持,从而允许用户在C++代码中不用编
2013-07-19 12:02:27 860
转载 字节对齐
【转载】原文出处:http://blog.csdn.net/21aspnet/article/details/6729724文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一
2013-07-19 11:46:44 669
转载 堆排序
本章开始介绍了堆的基本概念,然后引入最大堆和最小堆的概念。全章采用最大堆来介绍堆的操作,两个重要的操作是调整最大堆和创建最大堆,接着着两个操作引进了堆排序,最后介绍了采用堆实现优先级队列。原地(in place)排序就是指不申请多余的空间来进行的排序,就是在原来的排序数据中比较和交换的排序。属于原地排序的是:希尔排序、冒泡排序、插入排序、选择排序、堆排序。1、堆
2013-07-12 12:30:31 874
转载 浅谈C++容器
在面向对象的语言中,大多引入了容器的概念。那么 什么 是 容器?实质上就是一组相同类型对象的集合,但是它又不仅仅像数组那样简单,它实现了比数组更复杂的数据结构,当然也实现了比数组更强大的功能。C++ 标准模板库里提供了10 种通用的容器类,它基本上可以解决程序中遇到的大多数问题。 现在我主要来说明这10 种通用容器的功能用途以及相互之间的相同与异同。但是在这里,我不提倡一开始就着手从这
2013-07-08 12:02:21 705
转载 stl::string 函数备份
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常string类的字符操作:c
2013-07-08 11:28:33 628
转载 函数指针
本文系转载,http://blog.chinaunix.net/uid-25524263-id-2888273.html 一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x);//此处的申明也可写成:void MyFun(int );int main(int argc, char* argv[]){
2013-07-07 17:39:19 621
转载 c++智能指针
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::s
2013-07-05 14:45:54 628
转载 c++ 虚函数 纯虚函数
虚函数的调用原理多态性给我们带来了好处:多态使得我们可以通过基类的引用或指针来指明一个对象(包含其派生类的对象),当调用函数时可以自动判断调用的是哪个对象的函数。一个函数说明为虚函数,表明在继承的类中重载这个函数时,当调用这个函数时应当查看以确定调用哪个对象的这个函数。普通函数的处理:一个特定的函数都会映射到特定的代码,无论时编译阶段还是连接阶段,编译器都能计算
2013-07-05 11:04:43 904
转载 static_cast & dynamic_cast
static_cast一般用来将枚举类型转换成整型,或者整型转换成浮点型。也可以用来将指向父类的指针转换成指向子类的指针。做这些转换前,你必须确定要转换的数据确实是目标类型的数据,因为static_cast不做运行时的类型检查以保证转换的安全性。也因此,static_cast不如dynamic_cast安全。对含有二义性的指针,dynamic_cast会转换失败,而static_cast却直接且粗
2013-07-04 15:35:12 751
转载 OpenMP中的任务调度
OpenMP中,任务调度主要用于并行的for循环中,当循环中每次迭代的计算量不相等时,如果简单地给各个线程分配相同次数的迭代的话,会造成各个线程计算负载不均衡,这会使得有些线程先执行完,有些后执行完,造成某些CPU核空闲,影响程序性能。例如以下代码:int i, j;int a[100][100] = {0};for ( i =0; i {for( j = i; j {
2013-07-03 16:17:37 689
原创 Cholesky分解
Cholesky分解(Cholesky decomposition) 是矩阵分解的一种。可记作A = L L*。其中A是正定矩阵。L是下三角矩阵。L*是L的共轭转置矩阵。(共轭不记得啥意思了。)举例来说:那么我们需要求得的L是:通过wiki查到了计算公式及其推导。非常简单。以A为[3,3]大小的矩阵为例。上面这个Li,
2013-06-22 17:06:32 2182
转载 机器学习中的相似性度量
在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。 本文的目的就是对常用的相似性度量作一个总结。本文目录:1. 欧氏距离2. 曼哈顿距离3. 切比雪夫距离4. 闵可夫斯
2013-04-20 17:52:57 993 3
原创 二进制数求01的变换次数
计算LBP算子的时候遇到计算一个整数求0->1,1->0变换次数的问题。为了能提高性能,前辈告诉一个快速算法,mark下。int calc_01_change_count(unsigned int n_input){ unsigned int tmp = (n_input << 1); unsigned int n = n_input^tmp;//check ho
2013-01-22 11:51:41 770
原创 利用boost库遍历文件夹
最近用到boost库,其中遍历文件夹还很方便。mark下。#include #include using namespace boost;namespace fs = boost::filesystem2;int main(){ string dir = "path"; fs::path template_dir( dir, fs::native );
2013-01-18 16:52:50 1069
原创 用人脸图像测试PCA
利用上一个帖子的程序和一个很小的人脸来测试PCA的效果。#include #include #include #include using namespace cv;using namespace std;#define WIDTH 100#define HEIGHT 100#define SAMPLE_NUM 10#define DIMENTIONS (WI
2012-11-26 11:16:19 1359
原创 OpenCV下PCA降维
这两天看了下PCA降维,用OpenCV测试了下。主要是参考[1]和[2]。根据我的理解,代码记录下。#include #include #include #include using namespace cv;using namespace std;#define DIMENTIONS 7#define SAMPLE_NUM 31float Coordinat
2012-11-21 10:24:04 5579 5
转载 IplImage, CvMat, Mat 的关系
opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化。而CvMat和IplImage类型更侧重于“图像”,opencv对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。在opencv2.0之前,opencv是完全用C实现的,但是,IplIm
2012-11-14 15:13:10 866
原创 windows下CodeBlocks用VC2008编译器 + OpenCV2.4.2的环境配置
初始配置: 已安装vs20081. 下载安装CodeBlocks from: http://www.codeblocks.org/downloads第一次运行的时候会提示用户选择何种编译器,由于我已安装过vs2008,CodeBlocks显示detected,所以我选择了vs2005/2008.这样就可以写一个helloworld测试是否ok了。个人在测试的时候出现的问题是
2012-11-10 15:07:01 1577 1
原创 OpenCV 人脸检测自学笔记(8)_读trainCascade的训练结果的代码笔记
读trainCascade的训练结果的代码笔记这个是OpenCV提供的人脸检测调用trainCascade训练结果的代码。最近一直在用,不过才发现里面用到的接口不是trainCascade里的,用的是modules\objdetect\里的objdetect.hpp & cascadedetect.cpp。#include "opencv2/objdetect/objd
2012-10-31 12:07:39 3357 5
原创 OpenCV 人脸检测自学(7)
目前需要提炼下ml部分的接口。目的是以后方便选择用哪种分类器。还是一头雾水啊。。。学到哪先记录到哪。一。以CvSVM为例。下面是CvSVM类的定义:class CV_EXPORTS_W CvSVM : public CvStatModel{public: // SVM type enum { C_SVC=100, NU_SVC=101, ONE_CLAS
2012-10-29 11:54:25 2339 1
转载 【转】(lib)SVM 簡易入門
piaip 的 (lib)SVM 簡易入門piaip at csie dot ntu dot edu dot tw, Hung-Te LinFri Apr 18 15:04:53 CST 2003 $Id: svm_tutorial.html,v 1.13 2007/10/02 05:51:55 piaip Exp piaip $原作:林弘德,轉載請保留原出處Why
2012-10-24 14:18:24 1442
原创 AdaBoost 的4种类别学习(1)
理论部分Adaboost是一种迭代算法。初始时,所有训练样本的权重都被设为相等,在此样本分布下训练出一个弱分类器。在第( i =1,2,3, …M,M为迭代次数)次迭代中,样本的权重由第 i-1次迭代的结果而定。在每次迭代的最后,都有一个调整权重的过程,被分类错误的样本将得到更高的权重。这样分错的样本就被突出出来,得到一个新的样本分布。在新的样本分布下,再次对弱分类器进行训练,得到新的弱
2012-10-23 17:55:59 2510
原创 OpenCV 人脸检测自学(6)opencv_traincascade如何训练强弱分类器
在(3)中把opencv_traincascade在使用LBP特征的时候的训练准备工作的代码总结了下。下面开始硬着头皮看训练里面的部分了。介于这部分实在是没怎么找到网上介绍的帖子(为啥呢???)所以总结的大部分内容是自己猜测的。以后再回头慢慢完善。接着上次结束的部分,训练一个强分类器的代码是:bool CvCascadeBoost::train( const CvFea
2012-10-18 17:23:44 4544 10
转载 OpenCV 人脸检测自学(5)_如何使用opencv_traincascade
该文章出处:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/user_guide.html 级联分类器训练 介绍使用级联分类器工作包括两个阶段:训练和检测。 检测部分在OpenCV objdetect模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍。当前的指南描述了如何训
2012-10-16 10:53:07 3455 8
原创 OpenCV 人脸检测自学(4)_opencv_trainCascade输出的xml格式总结
opencv_trainCascade输出的xml格式总结在CvCascadeClassifier::save(const String filename, bool baseFormat)里当baseFormat为0时,选择输出本文档格式,否则还是输出opencv_haartraining的格式1. StageClassifier以上为opencv_
2012-10-15 15:35:42 5277 14
原创 OpenCV 人脸检测自学(3)
从Opencv教程上才发现下面的话。要是早点看到就好了,就不用看haartraining了,不过话说haartraining的网上的资料还是有不少的,但是traincascade就比较少了,所以只能自己硬着头皮看代码了。在程序的使用上跟haartraining差不多,代码流程部分在这记录下以后慢慢补充。”OpenCV中有两个程序可以训练级联分类器: opencv_haartraining
2012-10-12 12:03:32 7200 35
原创 OpenCV 人脸检测自学(2)
在看了文档[2,3]后开始对照着看OpenCV代码,看得晕头转向啊。又搜了网上的一些帖子,先针对自己的理解做笔记如下,日后好在此基础上补充。OpenCV人脸检测之数据结构:所有的结构都代表一个级联boosted Haar分类器。级联有下面的等级结构:Cascade:Stage1:Classifier11:Feature11Classifier12:Feature12
2012-09-29 11:50:27 3235 4
原创 OpenCV 人脸检测自学(1)
最近在了解人脸检测部分。作为一名新手,对所谓的机器学习一窍不通,尽管OpenCV里提供了这部分的代码,还是看得一头雾水。所以先从如何使用OpenCV里的程序和入手来入门。 发到blog里来作为备份,欢迎网友指出我理解的不对的地方。前半部分讲的是如何使用OpenCV里现有的程序,从而实现在有了测试DB的情况下可以输出训练的结果。主要是复制黏贴的[1].后半部讲的是我对运行程序的时候出的Deb
2012-09-28 16:49:55 7105 6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人