C/C++
文章平均质量分 73
理想主义帕鲁
“你灵魂深处,总要有这样一个地方:永远在海面漂荡,在半空中飞扬;永远轻盈、永远滚烫,不愿下沉、不肯下降。”
展开
-
可训练的神经三维网格渲染器(Neural 3D Mesh Renderer)
如果说计算机视觉是将三维世界的视觉信息“编码”为机器可以理解的参数的过程,那么计算机图形学则是将参数化的三维模型“解码”为人类可以感知的三维世界的过程。从某种意义上来讲,如果不考虑转换过程中信息的损失,这似乎是一个可逆的过程;而如果能使用某种方式把计算机视觉的操作与计算机图形学的操作结合在一起,是不是能够像自动编码器(Autoencoder)一样而实现某种无监督学习的应用呢?原创 2021-01-29 08:34:32 · 4704 阅读 · 3 评论 -
Visual Studio 2010 C++ 快捷键
Visual Studio 2010 C++ 快捷键 poster。点我下载。原创 2011-04-27 09:59:00 · 2472 阅读 · 0 评论 -
工厂模式的理解
今天开始看了下设计模式的书,开始就遇到了工厂模式的概念,这里简单谈下对它的一点理解。 1.为什么要有工厂模式? 假设我们要在屏幕上实现画画的功能,以下面这个描述过程为例:void main(){ int integerA = 10; int * const pA = &integerA; *pA = 20; //正确 pA +原创 2010-03-05 21:32:00 · 1179 阅读 · 0 评论 -
Debug与Release版本程序运行速度的比较
在使用Visual Studio编译器编译源代码时,会有Debug与Release两种编译模式。Debug版本通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 版本称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 下面来看一下这两种模式在不同情况下运行速度的差异。 Visual S原创 2011-03-21 12:51:00 · 16832 阅读 · 4 评论 -
【CPP Training】Getting Started with C++ PA
培训内容简要回顾 1)学习C++之前需要思考的内容 a)什么是编程 b)有效的学习方式(思考、阅读、试验) 2)C++的诞生与特点 http://www.research.att.com/~bs/ 3)C++程序的基本结构 a)最基本的代码原创 2013-04-13 02:43:46 · 1668 阅读 · 0 评论 -
VC++ MSDN学习中心
有视频,有代码示例~MSDN官方VC++学习中心~分享之~http://msdn.microsoft.com/zh-cn/visualc/aa336412.aspx学习 Visual C++发掘供初学者和有经验的开发人员学习 Visual C++ 的丰富资源。Visual C++ 2008 Express Edition 简介C++ 新手指南原创 2010-03-14 00:43:00 · 1658 阅读 · 0 评论 -
单例模式的使用
正如一个国家的总统/主席/首相仅有一个一样,在编程的时候,我们可能同样需要创建的某个对象全局唯一。单例模式是单一实例模式的简称,它是设计模式中最简单的一种,当我们需要创建的类对象全局唯一的时候,便可以运用到这种模式。它的一个简单实现过程如下:#include class CTheOne{public: /** 析构函数 */ ~CTheOne( void )原创 2010-03-08 12:47:00 · 1450 阅读 · 0 评论 -
【CPPTraining】Techniques towards Less Coding PA
培训内容简要回顾 1)函数与函数的重载 a)什么是函数 b)函数的声明 c)函数的默认参数 d)函数的重载 2)从宏到常量与内联函数 a)宏 b)C++中的常量 c)C++中的内联函数原创 2013-04-16 20:06:11 · 1818 阅读 · 4 评论 -
OpenCV 2.2.0及以上版本CvvImage的使用
前几日,OpenCV 2.2.0版本出现了...但是...以前版本的CvvImage类不见了...为了能够继续使用这个类,下面把这个类的源代码贴出来,使用的时候将该代码加入到工程中便可以使用了。为了方便切换OpenCV的版本,这里用到了一些条件编译宏,来保证代码的灵活性。 不过从OpenCV 2.2.0开始,OpenCV取消了CvvImage这个类,一定是有它的原因的,具体可以在做实原创 2011-01-17 10:32:00 · 12959 阅读 · 16 评论 -
【CPPTraining】Techniques towards Less Coding (Cont.) PA
培训内容简要回顾 1)组成与继承 a)宏观上的认识 b)类的概念的回顾 c)构造函数的初始化列表 d)组成对象 e)继承对象 2)多态与虚函数 a)宏观上的认识 b)多态概念的引出原创 2013-04-30 09:48:13 · 2068 阅读 · 0 评论 -
【CPP Training】Data Abstraction and Hiding the Implementation PA
培训内容简要回顾 1)数据类型 a)什么是数据类型 b)C语言数据类型的回顾 c)引用类型 2)类与对象 a)类的概念 b)类的定义 c)类的属性 d)类的方法 e原创 2013-04-13 03:06:40 · 3038 阅读 · 4 评论 -
VS中使用正则表达式进行查找替换
在编写代码的过程当中,我们经常会用到查找与替换的功能,而一般我们用到的是字面值的查找与替换功能。当然,这样的查找与替换方法有它的局限性。例如,当我们想去除多余的换行符时,似乎就没有办法的,原因有两点:一、假设我们能使用/n识别换行符,那么进行去除时所有的换行符将都被去掉;二、使用字面值的查找与替换功能时,/n是不能识别换行符的,它将被理解为一个字符串。 为了解决这个问题,VS也提供了原创 2010-03-10 09:51:00 · 9855 阅读 · 0 评论 -
Visual Studio下C++第三方库的配置方法总结
对于任何一种编程语言来说,其提供的标准库以及第三方库都是一个值得我们关注的内容,因为这样可以使我们站在巨人的肩膀上做事,从而更方便快捷地完成我们想要做的事情。对于C++这种语言来说,标准库在引用正确的头文件后,便可以使用其提供的相关功能了;而对于第三方库来讲,可能还需要花一点点时间做一些配置,才能正常的使用这些库。下面对于在Visual Studio平台下的第三方库的配置方法进行一些总结。原创 2013-05-31 15:17:44 · 11474 阅读 · 0 评论 -
Visual Studio中进行64位平台的编程
目前很多电脑在买来的时候都默认装了64位的操作系统,这说明64位的计算机平台已经越来越走向普及化。因此,对于我们来讲,了解64位程序的配置或编写方法也是非常重要的。在这篇文章中,我对Visual Studio 2010中进行64位平台编程的配置方法做了一个简单的探索与总结。 创建解决方案和工程文件 要进行编程,我们首先要做的第一步是创建一个解决方案和一个工程文件,这里假原创 2013-05-22 11:34:36 · 5006 阅读 · 2 评论 -
C++的数据结构知识
c++里的各个模板类,用的都是哪些数据结构呢?模板类型名称头文件命名空间数据结构备注vectorstd线性表顺序线性表liststd线性表原创 2010-09-02 16:32:00 · 932 阅读 · 0 评论 -
Visual Studio属性配置中使用宏
在学习C语言的时候,我们曾经遇到过一个宏的概念。宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是为了避免重复书写同样性质代码时,会使用到宏;二是为了定义一些常量参数时,会使用到宏。另外,宏的意义也在于,当我们修改某个宏的定义时,便修改了所有引用宏的地方所展开的代码,这无疑节省了我们修改代码的工作原创 2013-06-30 22:45:05 · 10899 阅读 · 0 评论 -
利用Shape Context进行形状识别
什么是Shape Context Shape Context是一个用于形状识别的,非常经典的特征(一串便于计算机处理的数字)提取方法,它由Serge Belongie和Jitendra Malik 于2002年在他们的文章“Shape matching and object recognition using shape contexts”中提出。这种特征提取方法使得计算机能够衡原创 2013-06-09 01:31:09 · 20902 阅读 · 11 评论 -
局部二值模式(LBP)中间过程的可视化
局部二值模式(Local Binary Pattern - LBP)是广泛用于图像分类的一种图像特征,它的特点是,在图像发生光照变化时,提取的特征仍然能够不发生大的改变。提取LBP的过程首先是将原始图像转换为LBP图,然后统计LBP图的LBP直方图,并以这个向量形式的直方图来表示原始的图像。目前不少开源的LBP实现代码没有给出中间过程的可视化步骤,这里给出了由原始图转换为LBP图的C++代码。原创 2013-08-03 09:58:25 · 4799 阅读 · 2 评论 -
Matlab与C/C++混合编程调用OpenCV
好久没写博客了,今天一个师兄问到了一个关于在Matlab与C/C++混合编程时,使用OpenCV库的编译问题,所以借此机会总结成文字分享一下过程。 在使用Matlab编译包含OpenCV库的代码之前,首先假设下面的几项工作已经完成。 1)下载并解压某个版本的OpenCV至硬盘的某个目录上,并将其运行时库添加到环境变量中。 2)安装了某个版本的VC编原创 2013-04-10 22:16:34 · 8796 阅读 · 10 评论 -
C++重载运算符的继承
C++语言中的一个基本特性就是继承,那么假如基类中定义了一个重载运算符,我们应该如何继承这个操作符呢?#include class CMyString : public std::string{ public: CMyString( void ){}; virtual ~CMyString( void ){}; /** 继承基类的=运算原创 2010-04-19 10:27:00 · 5829 阅读 · 2 评论 -
boost::thread之while(true)型线程终结方法
我们的程序中经常会用到线程来执行某些异步操作,而有些时候我们的线程执行的函数是这个样子的:void ThreadBody(){ while( true ) { std::cout << "Processing..." << std::endl; Sleep(1000); }} 那么,从理论上讲原创 2010-03-06 12:07:00 · 6316 阅读 · 0 评论 -
const后缀可以区分重载成员函数
C++语言可以支持函数重载,当然被重载的函数必须有一定的区别,即或是形参不同或是返回值不同等。那么可不可以用下面的方式来区分两个函数呢?class CTest{public: /** test函数 */ void test( void ); /** 带有const后缀的test函数 */ void test( void原创 2010-03-09 21:04:00 · 2194 阅读 · 0 评论 -
存放对象、对象指针、对象智能指针,哪个更好?
在编写程序的过程当中,经常会涉及数据存储的操作,如数据缓冲区的存取操作等,而从微观上来讲,我们存储的便是一些结构体、一些类等对象。这时,选择以怎样的方式来存储这些数据也将会影响到速度、安全性等性能指标。下面就以存放对象、对象指针、对象智能指针这三种策略,来进行一个实验,并得出它们的优势与劣势的比较。(代码测试环境为我可怜的本本……>_ )实验代码: #include #in原创 2010-03-11 18:39:00 · 2244 阅读 · 2 评论 -
DIY自己的音乐播放器
想做一个属于自己的音乐播放器吗,那么就来使用vfw.h提供的MCIWnd来实现吧。 名词解释 vfw.h - Video for windows include file for WIN32 MCIWnd - Window class for MCI objects 简要介绍/*************************原创 2010-03-30 15:13:00 · 2237 阅读 · 2 评论 -
使用OpenCV进行视频读写
OpenCV视频读写的代码,用的是其C++形式的API。输入文件为完全无压缩的avi格式视频文件。原创 2011-03-14 15:38:00 · 5708 阅读 · 6 评论 -
数组名与数组名的地址
今天某学弟问了我一个C语言的问题,为什么二维数组名的值和二维数组名地址的值是相同的。我说不可能吧……结果做了下实验,居然真的是这个样子的,感觉很诡异。之后我感觉不可能二维数组这么特殊,又做了一维数组的实验,发现一维数组名的值和一维数组名地址的值也是相同的。实验代码与运行结果如下所示。原创 2011-05-10 16:21:00 · 2789 阅读 · 7 评论 -
类前置声明的使用
在书写C++代码的过程当中,人们有时会用到一个叫类前置声明的东西。那么使用这个类前置声明对于程序员来讲有什么好处呢,我们什么时候可以利用这个类前置声明呢?下面就用一个具体的例子来解释类前置声明的用法。原创 2011-05-19 10:49:00 · 6769 阅读 · 0 评论 -
在Matlab中使用mex函数进行C/C++混合编程
最近写了个Matlab程序,好慢呐……所以开始学习Matlab与C/C++混合编程。下面写了个测试代码,显示一个Double类型矩阵中的元素。在Matlab使用mex命令编译源文件时,要注意这样一个现象:源文件名后缀为.c时,所有变量声明必须一次性完成,且放在最前面, 否则mex编译错误;而源文件名后缀为.cpp时,就没有上面的问题,...- -||。原创 2011-04-01 22:19:00 · 12928 阅读 · 1 评论 -
哈夫曼编解码类
最近自己写了一个用于哈夫曼编解码的C++类,这里分享一下。原创 2010-10-05 00:44:00 · 2044 阅读 · 0 评论 -
使用VA-Snippets提高Coding效率
VissualAssist是一个非常不错的辅助工具,而它的Snippets工具可以把握们从繁重的注释工作中解脱出来。Snippet即为一个注释模板工具,通过自定义模板便可以化简代码注释甚至代码本身的重复工作。添加一个Snippet的方法为,点击VS菜单栏上VAssistX-VissualAssistXOptions-Advanced-Suggestions-EditVASnippets原创 2010-03-22 10:11:00 · 3204 阅读 · 0 评论 -
const int * p, int const * p和int * const p的区别
1)const不与p直接相邻,则p指向的内容的值不可更改;2)const与p直接相邻,则指针p的值不可更改。原创 2021-01-03 01:02:53 · 1502 阅读 · 0 评论 -
OpenCV中协方差矩阵的计算
下面给出了OpenCV中协方差矩阵的计算方法,其输入输出特性与Matlab中的cov函数相同,但是可能由于OpenCV程序本身的问题,自带的归一化功能是按照除以矩阵行数(R)来计算的,但实际上应该除以(R-1)进行归一化,所以这里没有用其自带的归一化功能。将所得的协方差矩阵每个元原创 2010-11-02 18:56:00 · 8095 阅读 · 1 评论 -
C++标准I/O库
C++的输入/输出由标准库提供,标准库定义了一族类型,支持对文件和控制窗口等设备的读写,还定义了其他一些类型,使string对象能够像文件一样操作,从而使我们无需自己写代码就能实现数据与字符之间的转换。基本I/O类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写文件的类型,sstream定义读写存储在内存中的string对象的类型,它们使用的命原创 2010-03-22 09:08:00 · 1825 阅读 · 0 评论 -
用Free来释放New出来的东西会发生什么
用C语言中的free函数来释放C++中的new运算符分配的内存,会发生什么呢? 开始做实验。原创 2011-07-21 20:16:40 · 3067 阅读 · 0 评论 -
OpenCV中矩阵深度类型转换
在OpenCV中,cv::Mat类提供了一个名为converTo的方法来进行矩阵类型转换。当然使用时需要注意的是,该函数只能进行矩阵深度类型的转换,而不能进行矩阵通道数的转换。若需要进行矩阵通道数的转换,可能需要采取进行其他的方法来变通实现。下面对该函数进行测试。原创 2011-08-15 21:32:29 · 4932 阅读 · 3 评论 -
OpenCV HOGDescriptor 参数图解
最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。 首先我们进入HOGDescriptor所在的头文件,看看它的构造函数原创 2011-03-11 10:35:00 · 80033 阅读 · 82 评论 -
结构体的秘密
结构体,这样的一种数据结构,可能曾经在我们学习C语言的时候,给我们带来过不小的新鲜感与神秘感。当然,随着我们与它越来越多的接触,这种新鲜感与神秘感或许已经慢慢地被我们淡忘掉了,因为它与我们已经、正在或将要学习的一些的东西相比,显得是那样单纯与朴素。不过,任何一种东西都有它可以研究的东西在里面,如果不太了解一些细节的话,可能会遇到一些很奇怪的问题。结构体也是这样的一种东西,这也是这一篇文原创 2010-03-07 00:25:00 · 2204 阅读 · 4 评论