- 博客(41)
- 资源 (5)
- 收藏
- 关注
原创 继承中参数传递及调用顺序
继承中参数传递及调用顺序一、简单派生类的构造函数传参C++语言的继承特性,指子类可以继承父类的属性和行为,并可以重新定义或添加新的属性和行为。父类中为private型的属性和行为虽然被继承,但是子类中仍不能访问。在继承机制下,构造函数是不能被继承的,所以基类构造函数的参数要由子类构造函数传!单一继承的子类构造函数的声明(.h中)形式为:派生类构造函数名(参数总表) ();单
2014-11-09 14:29:15
2544
原创 函数和数据的继承及访问权限
C++通过类派生(Class Derivation)的机制支持继承(Inheritance)。允许程序员在保持原有类特性的基础上进行扩展,增加功能,派生出新类。成员函数重载、成员变量重载做具体分析
2014-11-09 09:44:54
1000
原创 直接插入排序(Straight Insertion Sort)
直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。/* 对顺序表L作直接插入排序 */void InsertSort(SqList *L);直接插入排序代码:// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#de
2014-10-25 15:45:20
1179
1
原创 简单选择排序(Simple Selection Sort)
基本思想:排序时找到合适的关键字再做交换,并且只移动一次就完成相应关键字的排序定位工作。即通过n-i次关键字间的比较,从n-i+1(i=1,2,...n-1)个记录中选出关键字最小的记录,并和第i(1void SelectSort(SqList *L);实现代码如下:// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#define
2014-10-25 14:35:21
1841
原创 冒泡排序深入详解
冒泡排序的基本思想冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果凡需则交换,直到没有凡需的记录位置。一、冒泡排序简单实现(初级版)#include "stdafx.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;
2014-10-25 11:33:44
1249
原创 排序的基本概念与分类
1、排序技巧实现一次排序即完成组合排序:将多个徐排序的数字当作字符串首尾连接在一起进行排序。用到字符串比对2、排序的稳定性3、内排序和外排序内排序是在整个排序过程中,待排序的所有记录全部被防止在内存中。外排序是由于排序的记录个数太多,不能同时放置在内存,整个排序过程需要在内外存之间多次交换数据才能进行。时间性能:高效的内排序算法应该是具有尽可能少的关键字比较次数和尽可能少的记录
2014-10-25 10:15:52
1498
转载 基于内容的图像检索技术(5)
五、检索效果评价方法基于内容的图像检索方法很多,在具体应用中只有采用恰当的检索算法才能得到满意的结果。因此,需要对这些算法进行评估,比较其优劣。检索算法评价方法能够在相同的条件下找出最佳算法。在目前已有的一些评价准则中,主要有以下两种:1.以查全率和查准率为基准的方法查全率和查准率一般定义为:查全率=检索到的相关图像数目/所有相关图像数目;查准率=检索到的相关图像的数目/已检索出的
2014-10-14 22:35:40
991
转载 基于内容的图像检索技术(6)
六、基于内容特征的图像检索系统 从上面对图像搜索引擎的讨论中,我们可以看出,图像搜索引擎所实现的图像检索基本上是与文本搜索引擎类似的基于图像内容描述(description-based)的语义层次的匹配(例如通过关键词或自由词、分类目录)。因为许多情况下,用户习惯于通过概念来提交查询。概念查询的一种实现即是基于文本式的描述,用关键词、关键词逻辑组合或自然语言来表达查询的概念,这就是语义层次的
2014-10-14 22:34:29
1452
转载 基于内容的图像检索技术(4)
四、基于形状特征的检索形状特征是图像目标的一个显著特征,很多查询可能并不针对图像的颜色,因为同一物体可能有各种不同的颜色,但其形状总是相似的。如检索某辆汽车的图像,汽车可以是红的、绿的等,但形状决不会如飞机的外形。另外,对于图形来说,形状是它唯一重要的特征。从图像中提取的目标边缘称为轮廓。基于形状或轮廓的检索是基于内容检索的一个重要方面,它能使用户通过勾勒图像的形状或轮廓,从图像库中检索出形状
2014-10-14 22:31:42
900
转载 基于内容的图像检索技术(3)
三、基于纹理特征的检索纹理是图像中一个重要而又难以描述的特性。很多图像在局部区域内可能呈现出不规则性,而在整体上却表现出某种规律性。习惯上把图像中这种局部不规则而整体有规律的特性称之为纹理。从人类的感知经验出发,纹理特征主要有粗糙性、方向性和对比度,这也是用于检索的主要特征。已有不少纹理分析方法,大致可分为两类。1.统计方法用于分析像木纹、沙地、草坪等细致而不规则的物体,并根据关于象素
2014-10-14 22:30:43
983
转载 基于内容的图像检索技术(2)
二、基于颜色特征的检索颜色特征是图像最直观、最明显的特征,一般用直方图描述。直方图的横轴表示颜色等级,纵轴表示在某一个颜色等级上具有该颜色的象素在整幅图像中所占的比例。以直方图为特征的常用的匹配方法有:1.矢量距离法以图像的直方图在各个灰度级上的值构成特征矢量,按照欧氏距离公式计算特征矢量之间的距离,以这个距离值代表图像之间的差别程度。试验证明,如果选择合适的彩色空间,那么,欧氏距离与
2014-10-14 22:29:07
884
转载 基于内容的图像检索技术(1)
基于内容的图像检索技术一、概述 基于内容的图像检索技术是一种综合集成技术,它通过分析图像的内容,如颜色、纹理等,建立特征索引,并存储在特征库中。用户在查询时,只要把自己对图像的模糊印象描述出来,就可以在大容量图像库中找到想要的图像。基于内容的图像检索技术与其它相关学科的主要区别是:首先,它是一种信息检索技术,应能从大型分布式数据库中以用户可以接受的响应时间及尽量与领域无关的方
2014-10-14 22:28:19
1347
原创 内敛函数宏定义区别
内敛函数(inline函数)内敛函数一般规模较小,程序再调用这些成员函数时,不是真正的执行函数的调用过程(如保存返回地址等处理),而是把函数代码嵌入程序的调用点(内敛函数在源文件中不是调用而是按原样展开),这样可以大大减少调用成员函数的时间。类内定义的成员函数默认是内敛函数。因为在c++中一般将类定义放在头文件中,因此这些类内定义的函数也伴随着写入头文件中。函数声明一般在头文件中,而定义是
2014-10-12 10:11:36
1679
原创 类对象作为成员
类对象内部嵌套类对象,被嵌套的对象成为内嵌对象。内嵌对象是该类对象的组成部分,当创建该对象时,其内嵌对象也被自动创建。C++中通过构造函数的初始化表为内嵌对象初始化。组合类的带有初始化表的狗仔函数的定义格式为:类名::构造函数名(全部参数表):内嵌对象1(参数表1),内嵌对象2(参数表2),...{ 构造函数体 };声明格式为:类名::构造函数名(全部参数表);
2014-10-12 10:08:04
1057
原创 友元函数友元类.
友元可以理解为是类的“朋友”,它可以访问类的保护和私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。 一、友元函数友元函数是在类外定义的一个函数,不是类的成员函数。这个函数可以是普通的C++函数,或者是其他类的成员函数。即普通友元函数和友元成员函数。友元函数是定义在类外部,但需要
2014-10-12 10:02:25
1972
原创 面向对象程序中的常量
一、常数据成员 使用const关键字进行说明的数据成员,称为常数据成员。其作用和用法与一般常变量(const变量)相似,但常数据成员的值是不能改变的。注意:只能通过构造函数的参数初始化表对常数据成员进行初始化,不能采用在构造函数中对常数据成员赋初值的方法。例如: 如在类体中定义了常数据成员age: const int age; //声明age
2014-10-12 09:54:29
1278
原创 拷贝构造函数(深拷贝vs浅拷贝)
拷贝构造函数(深拷贝vs浅拷贝)类对象之间的初始化是由类的拷贝构造函数完成的。它是一种特殊的构造函数,它的作用是用一个已知的对象来初始化另一个对象。如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的位拷贝。位拷贝又称浅拷贝。一、拷贝构造函数定义格式类名::拷贝构造函数名(类名& 引用名)例如:Tdate ::T
2014-10-12 09:46:57
1775
原创 c++中构造函数和析构函数
一、构造函数的特点(1)构造函数是类的一个特殊的成员函数,函数名与类名相同;(2)构造函数的访问属性应该是公有(public)访问属性;(3)构造函数的功能是对对象进行初始化,因此在构造函数中只能对数据成员做初始化,这些数据成员一般为私有成员,在构造函数中一般不做初始化以外的事情;(4)构造函数可以在类内定义也可以在类外定义;(5)构造函数无函数返回类型。注意:是什么也不写,也
2014-10-12 09:46:04
1940
原创 面向对象设计的SOLID原则
面向对象设计的SOLID原则SRP The Single Responsibility Principle 单一责任原则OCP The Open Closed Principle 开放封闭原则LSP The Liskov Substitution Principle 里氏替换原则DIP The Dependency Inversion Principle 依赖倒置原则ISP
2014-10-12 09:41:23
1015
转载 请关闭你的等死模式
请关闭你的等死模式今天我们来分享一篇将改变你生活方式和 态度的文章。我在飞机上遇到一位女士。她去年本想考自己喜欢的研究生,结果失败,却出乎意料地遇到了一份不错的工作。今年是考还是不考?她害怕考了又考不上,浪费时间; 但是不考又不安心,已经纠结半年了。我问她,去年你每天花多少时间学习?她说她去年每天大概用4个小时,学了3个月,考前一周突击了一下,就差3分。我又问她,现在你每天烦这件事情大
2014-10-11 16:15:31
669
原创 BitSet的使用
有些程序需要处理二进制有序集,标准库提供了bitset 类型,事实上,bitset 是一个二进制容器,容器中每一个元素都是一位二进制码,或为 0,或为 1。bitset除了可以访问指定下标的bit位以外,还可以把它们作为一个整数来进行某些统计。1、定义与初始化使用:#include using std::bitset;在定义 bitset 时,要明确 bitset 有多少位,这
2014-10-11 16:09:16
1183
原创 使用Opencv2遇到error C2061: 语法错误: 标识符dest
在写代码是遇到了这样一个问题,error C2061: 语法错误: 标识符“dest”:1>d:\opencv\opencv\build\include\opencv2\flann\any.h(70): error C2061: 语法错误: 标识符“dest”1> d:\opencv\opencv\build\include\opencv2\flann\any.h
2014-10-11 16:00:01
8186
3
原创 std::map用法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树AVL),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见
2014-10-11 15:59:58
2186
转载 使用Opencv2出现logger.h(66): error C4996:fopen
今天使用vs2012配置opencv编译出现问题:1>—— 已启动生成: 项目: Win32ForOpenCV245, 配置: Debug Win32 ——1> stdafx.cpp1> Win32ForOpenCV245.cpp1>f:\softs\opencv245\opencv\build\include\opencv2\flann\logger.h(66): error
2014-10-11 15:57:22
3003
原创 opencv中RGB转HSV
cvCvtColor(src,dst,CV_BGR2HSV);其中,src为三通道的,dst也为三通道的,OPENCV 中 H、S、V、顺序分别为3*x+0 3*x+1 3*x+2opencv中的 H分量是 0~180, S分量是0~255, V分量是0~255但是HSV颜色空间却规定的是,H范围0~360,S范围0~1,V范围0~1所以你需要自己转换一下,H*2,V/2
2014-10-11 15:49:59
4287
原创 string型哈希值的明氏距离比较
前一段时间在网上找以图搜图的资料,发现了感知哈希算法,得出的哈希值以字符串形式保存,我们管这种形式叫做哈希指纹。字符串中为十六进制数,需计算其二进制中的明氏距离,即二进制表示中不一样位数的个数。如下测试代码:
2014-09-26 13:58:48
1466
原创 三种基于感知哈希算法的相似图像检索技术
大家都用google或baidu的识图功能,上面就是我搜索一幅图片的结果,该引擎实现相似图片搜素的关键技术叫做“感知哈希算法”(Perceptual hash algorithm),它的作用是对每张图片生成一个“指纹”(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。达到图片比较目的且利用信息指纹比较有三种算法,这些算法都很易懂,下面分别介绍一下:
2014-09-26 11:32:46
13092
2
原创 MFC中CTime获取日期时间的方法
MFC中CTime类的功能非常强大,可以获取年、月、日、小时、分钟、秒、星期等等,最最重要的是可根据需要去格式化。
2014-09-23 10:18:38
19942
原创 c++ 友元
友元可以理解为是类的“朋友”,它可以访问类的保护和私有成员,即一个类的友元对类的访问不受访问权限的控制。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。 一、友元函数友元函数是在类外定义的一个函数,不是类的成员函数。这个函数可以是普通的C++函数,或者是其他类的成员函数。即普通友元函数
2014-02-24 16:50:33
837
原创 c++ 拷贝构造函数
拷贝构造函数(深拷贝vs浅拷贝)类对象之间的初始化是由类的拷贝构造函数完成的。它是一种特殊的构造函数,它的作用是用一个已知的对象来初始化另一个对象。如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认的拷贝构造函数,该构造函数完成对象之间的位拷贝。位拷贝又称浅拷贝。 一、拷贝构造函数定义格式类名::拷贝构造函数名(类名& 引用名)例如:Tdate ::
2014-02-24 16:46:03
1100
1
原创 c++ 构造函数和析构函数详解
一、构造函数1、构造函数的特点(1)构造函数是类的一个特殊的成员函数,函数名与类名相同;(2)构造函数的访问属性应该是公有(public)访问属性;(3)构造函数的功能是对对象进行初始化,因此在构造函数中只能对数据成员做初始化,这些数据成员一般为私有成员,在构造函数中一般不做初始化以外的事情;(4)构造函数可以在类内定义也可以在类外定义;(5)构造函数无函数返回类型。注意:
2014-02-24 16:40:19
1928
原创 内敛函数(inline函数)
内敛函数(inline函数)内敛函数一般规模较小,程序再调用这些成员函数时,不是真正的执行函数的调用过程(如保存返回地址等处理),而是把函数代码嵌入程序的调用点(内敛函数在源文件中不是调用而是按原样展开),这样可以大大减少调用成员函数的时间。事实上我们可以用内联函数完全取代预处理宏类内定义的成员函数默认是内敛函数。因为在c++中一般将类定义放在头文件中,因此这些类内定义的函数也伴随着写入头
2014-02-24 16:36:21
4667
原创 c++面向对象设计的SOLID原则
面向对象设计的SOLID原则SRP The Single Responsibility Principle 单一责任原则OCP The Open Closed Principle 开放封闭原则LSP The Liskov Substitution Principle 里氏替换原则DIP The Dependency Inversion Principle 依赖倒
2014-02-19 22:06:31
2669
原创 c++类模版
上一篇讲了c++的函数模板,类模板是在比类更高级层次上的抽象,可以用类模板来创建类。简单的说,类模板就是一个抽象的类。 类模板、类及对象的关系1、类模板定义的语法格式如下:template class 类名{ 类成员声明}类模板定义中各部分的意义和函数模板定义中各部分的意义几乎相同。
2014-02-19 21:25:21
830
原创 c++函数模板
所谓模板,其实就是一种使用“数据类型”作为参数来产生一系列函数或类的机制。模板是C++支持多态性的一种工具。通过模板可以产生类或函数的集合,它们有能力操作不同的数据类型。模板方便了更大规模的软件开发。减少了程序员编写代码的工作量。 一、学习模板函数之前,首先看看函数重载存在的缺陷。int Max(int x, int y){ return x>y?x:y ;}double
2014-02-19 21:10:04
972
转载 warning C4996: “fopen”被声明为否决的
问题:vs2010中编程时,遇到如下:warning C4996: “fopen”被声明为否决的。 解释:微软的警告,主要是那些都是C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了一 下同样功能的函数,只不过进行了参数的检测,使用这些新的就可以了。不用特意记,每个函数在给出警告时都会告诉你相应的安全函数,注意一下警告信息就可以了,
2014-02-17 21:31:41
2453
原创 Opencv2.4.3在vs2010下的配置
1、本来在opencv中文论坛可以很容易的找到关于不同版本的opencv在配置vc中的配置,但改版后的论坛却很难找到这样的配置方法,对此,本人在网上找到配置方法并整理,以备查阅。2、配置OpenCV环境变量计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加” %opencv%\build\x86\v
2014-02-17 21:24:13
908
原创 Windows下利用c语言测试函数运行时间
很多时候你需要测量某个函数的执行时间,从而进行优化。在网上也查了一些关于这方面的文章,要不就是给出的函数只能在linux下运行,或者就是系统或硬件不支持该函数,有些给出的计算精度有问题。通过测试,给出了windows平台可以运行的满足精度要求的函数,很实用。 1、基于,用clock()函数,精度10毫秒.#include clock_t start = clock();test
2014-02-17 21:13:57
3919
windows下c语言获取日期时间的类
2014-09-24
均值飘移的目标跟踪程序
2010-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人