<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lejun2011</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lejun2011]]></copyright><item><title><![CDATA[CvArr、Mat、CvMat、IplImage、BYTE转换（总结而来）]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/8155346</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/8155346</guid><author>lejun2011</author><pubDate>Sat, 24 Jan 2015 20:05:12 +0800</pubDate><description><![CDATA[转载至：http://blog.youkuaiyun.com/wuxiaoyao12/article/details/7305848
为方便自己
 
一、Mat类型：矩阵类型，Matrix。

    在openCV中，Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。
    Mat有3个重要的方法：
         1、Mat mat = imread]]></description><category></category></item><item><title><![CDATA[OpenCV c接口与c++接口]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/17438129</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/17438129</guid><author>lejun2011</author><pubDate>Fri, 20 Dec 2013 11:29:22 +0800</pubDate><description><![CDATA[Opencv 从c到c++
Opencv2.0版本发布后，其新的C++接口，cv::Mat代替了原来c风格的CvMat和IplImage.目前，2.0版本对c的接口也是支持的。
相对于c的接口，c++的cv::Mat统一了矩阵和图像这两个概念。事实上，矩阵和图像其实是一样的。由于cv::Mat是c++的类，所以也具备了相关的一些特征。例如，内存的释放。在C++中，一个对象超出其使用范围后，会自]]></description><category></category></item><item><title><![CDATA[C++重要知识点小结---1]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11798299</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11798299</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 10:15:30 +0800</pubDate><description><![CDATA[C++重要知识点小结---1



1.C++中类与结构的唯一区别是：类（class）定义中默认情况下的成员是private的，而结构（struct）定义中默认情况下的成员是public的。

2. ::叫作用域区分符，指明一个函数属于哪个类或一个数据属于哪个类。::可以不跟类名，表示全局数据或全局函数（即非成员函数）。

3.类名加载成员函数名之前而不是加在函数的返回类型前。
]]></description><category></category></item><item><title><![CDATA[C++中引用的本质是什么?]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11798241</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11798241</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 10:13:52 +0800</pubDate><description><![CDATA[C++中引用的本质是什么?

一般的教材上讲到引用时，都是说“引用是对象的一个别名”。我认为这种定义是不清晰的，不利于初学者理解引用。至少我自己曾经被这个定义困扰了一段时间。到底什么是“别名”？
    实际上，引用的实质是位于xxxxxx地址上的一个xxxx类型的对象。比如教科书上常用的例子：
    int a = 5；           //不妨假设编译器将a分配到0x400000]]></description><category></category></item><item><title><![CDATA[静态成员函数和非静态成员函数的区别？]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11798119</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11798119</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 10:10:08 +0800</pubDate><description><![CDATA[静态成员函数和非静态成员函数的区别？

一个静态成员函数不与任何对象相联系，故不能对非静态成员进行默认访问。
它们的根本区别在于静态成员函数没有this指针，而非静态成员函数有一个指向当前对象的指针this。
例如：


 1 class Sc
 2 {
 3 public:
 4     void nsfn(int a);   //像声明Sc::nsfn(Sc *this , in]]></description><category></category></item><item><title><![CDATA[C++重要知识点小结---2]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11798063</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11798063</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 10:08:12 +0800</pubDate><description><![CDATA[C++重要知识点小结---2


C++重要知识点小结--1 ：http://www.cnblogs.com/heyonggang/p/3246631.html
1.C++允许程序员声明一个不能有实例对象的类，这样的类惟一的用途是被继承。这种类成为抽象类。
一个抽象类至少具有一个纯虚函数。所谓纯虚函数是指被标明为不具体实现的虚成员函数。
如：

virtual void WithD]]></description><category></category></item><item><title><![CDATA[C++ 虚拟继承]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11798027</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11798027</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 10:07:05 +0800</pubDate><description><![CDATA[C++ 虚拟继承

1.为什么要引入虚拟继承
虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2，而类B1、B2都继 承自类A，因此在类D中两次出现类A中的变量和函数。为了节省内存空间，可以将B1、B2对A的继承定义为虚拟继承，而A就成了虚拟基类。实现的代码如 下：
class A
class B1:public virtual A;
clas]]></description><category></category></item><item><title><![CDATA[C++重要知识点小结---3]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11797647</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11797647</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 09:56:31 +0800</pubDate><description><![CDATA[C++重要知识点小结---3


C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html
C++重要知识点小结---2:http://www.cnblogs.com/heyonggang/p/3253036.html

1.什么是智能指针？
智能指针是一个行为类似指针但也提供其他功能的类。
智能指针类实现普通指]]></description><category></category></item><item><title><![CDATA[struct 与 typedef struct]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11797531</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11797531</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 09:54:31 +0800</pubDate><description><![CDATA[struct 与 typedef struct


1. 基本解释
　　typedef为C语言的关键字，作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型（int,char等）和自定义的数据类型（struct等）。
　　在编程中使用typedef目的一般有两个，一个是给变量一个易记且意义明确的新名字，另一个是简化一些比较复杂的类型声明。
　　至于typedef有什么微妙]]></description><category></category></item><item><title><![CDATA[需要友元的原因及使用]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11797357</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11797357</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 09:52:03 +0800</pubDate><description><![CDATA[需要友元的原因及使用


有时候，普通函数需要直接访问一个类的保护或私有数据成员。如果没有友元机制，则只能将类的数据成员声明为公共的，从而，任何函数都可以无约束的访问它。
普通函数需要直接访问类的保护或私有数据成员的原因主要是为提高效率。
在类里声明一个普通函数，标上关键字friend，就成了该类的友元，可以访问该类的一切成员。
需要友元的另一个原因是为了方便重载操作符的使用。
友元]]></description><category></category></item><item><title><![CDATA[C++类的静态成员详细讲解]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11797205</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11797205</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 09:50:16 +0800</pubDate><description><![CDATA[C++类的静态成员详细讲解

在C++中，静态成员是属于整个类的而不是某个对象，静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则，保证了安全性还可以节省内存。
静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。

在C++中类的静态成员变量和静态成员函数是个容易出错的地方，本文先]]></description><category></category></item><item><title><![CDATA[位运算]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/11796571</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/11796571</guid><author>lejun2011</author><pubDate>Wed, 18 Sep 2013 09:42:50 +0800</pubDate><description><![CDATA[位运算

　　位运算时把数字用二进制表示之后，对每一位上0或者1的运算。
　　理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。在程序员的圈子里有一个流传了很久的笑话，说世界上有10种人，一种人知道二进制，而另一种人不知道二进制。。。。。。
　　其实二进制的运算并不是很难掌握，因为位运算总共只有5种运算：与、或、异或、左移、右移。如]]></description><category></category></item><item><title><![CDATA[MFC程序（在静态库中使用MFC）问题]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/8115463</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/8115463</guid><author>lejun2011</author><pubDate>Fri, 26 Oct 2012 15:08:38 +0800</pubDate><description><![CDATA[基本知识：
在项目的配置属性中配置“MFC的使用”时，选项的区别：如果选择"在共享 DLL中使用
 MFC"的话，编译后的程序中不包含MFC库，所以文件会比较小，但是如果程序直接移到一个没有安装过MFC的机器上时，可能会导致找不到MFC的DLL，如果选择"静态库中使用
 MFC  "，那么编译后的程序就直接包含了调用MFC的部分的库，文件可能会大一些，但是可以直接移到其他机器上运行.
遇到]]></description><category></category></item><item><title><![CDATA[滚动条控制视频播放问题解决方案]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7796839</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7796839</guid><author>lejun2011</author><pubDate>Sat, 28 Jul 2012 16:07:56 +0800</pubDate><description><![CDATA[最近在编写视频播放相关的程序，在为视频播放器添加一个滚动条时出现了很多问题，滚动条实现的功能是：随着视频的播放滚动条移动显示进度；滚动条可以随意拖动以调整视频播放到感兴趣的地方，即可以快进后退。
之前我的做法是为滚动条添加一个事件处理程序，同时在定时器中不断更新滚动条位置，但是问题是视频出现跳跃重复现象，后来发现程序响应了滑动条OnNMCustomdrawProgress消息，并在此消息中又调整]]></description><category></category></item><item><title><![CDATA[cvLoadImage加载图像路径转化]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7633501</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7633501</guid><author>lejun2011</author><pubDate>Tue, 05 Jun 2012 10:39:23 +0800</pubDate><description><![CDATA[最近在做Opencv图像处理方面的，对加载图像时路径问题头疼了N久，问题解决，记录下来给自己保存。1和2可以在加载一组图片时用。3在加载一幅图像时用
1、数组转化为CString：直接用CString函数即可，如：
char array[100] = {0};
CString str2;
str2 =CString(array);
2、CString转化为数组类型：
char arra]]></description><category></category></item><item><title><![CDATA[OpenCV学习-利用ROI裁剪图片]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7599912</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7599912</guid><author>lejun2011</author><pubDate>Thu, 24 May 2012 21:14:15 +0800</pubDate><description><![CDATA[为了提取到一幅图像中感兴趣的区域并裁剪出来作为一幅新图像的方法：
1、利用void cvSetImageROI( IplImage* image, CvRect rect )函数设置感兴趣的区域；
IplImage* src = cvLoadImage(“D:\\test.jpg”,1);
cvSetImageROI(src,cvRect(0,0,0.5*src->width,0.5*src]]></description><category></category></item><item><title><![CDATA[cvCopy与cvCloneImage的区别]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7597164</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7597164</guid><author>lejun2011</author><pubDate>Thu, 24 May 2012 09:52:34 +0800</pubDate><description><![CDATA[最近用cvCopy()比较多，而且一直出问题，很纠结…………
/* Copies source array to destination array */
CVAPI(void)  cvCopy( const CvArr* src, CvArr* dst,
                     const CvArr* mask CV_DEFAULT(NULL) );
/* Creat]]></description><category></category></item><item><title><![CDATA[cvCalcEigenDecomposite——opencv内置PCA算法的第二个函数]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7591832</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7591832</guid><author>lejun2011</author><pubDate>Tue, 22 May 2012 17:27:00 +0800</pubDate><description><![CDATA[PCA(Eigenface)方法是人脸识别的主流方法之一。cvEigenDecomposite()函数作用是将人脸图像通过Eigenface变换矩阵，投射到子空间中。子空间中的人脸向量，是一个1×nEigens（nEigens由自己取得）的行向量，极大地降低了数据维度，便于下一步的聚类、识别。结合具体例子，尽量清楚地跟大家讨论这个函数的用途。
函数说明如下：
EigenDecomposite]]></description><category></category></item><item><title><![CDATA[cvCalcEigenObject——opencv内置PCA算法的第一个函数]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7591823</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7591823</guid><author>lejun2011</author><pubDate>Tue, 22 May 2012 17:25:37 +0800</pubDate><description><![CDATA[cvCalscEigenObject()函数，包含于中。在PCA人脸识别的程序中，属于核心算法。
先翻译一段注解，原文来自：
http://www710.univ-lyon1.fr/~bouakaz/OpenCV-0.9.5/docs/ref/OpenCVRef_ObjectRecognition.htm

void cvCalcEigenObjects( int nObjects, vo]]></description><category></category></item><item><title><![CDATA[VS2008中配置GDI+]]></title><link>https://blog.youkuaiyun.com/lejun2011/article/details/7578711</link><guid>https://blog.youkuaiyun.com/lejun2011/article/details/7578711</guid><author>lejun2011</author><pubDate>Fri, 18 May 2012 08:57:41 +0800</pubDate><description><![CDATA[VS2008中包含GDI+的开发包，配置相对简单。对每个需要使用GDI+的项目，都必须使用同样地方法进行配置。
1、在项目属性中添加GDI+静态链接库
选择【项目】->【Example属性】（Example为项目名称），打开项目属性对话框。展开“配置属性”，选择“连接器”下面的“输入”，然后在“附加依赖项”中添加“gdiplus.lib”，要想在Release模式下程序也能正常编译，只要选择左]]></description><category></category></item></channel></rss>