摘要:
什么时候会用到拷贝构造函数?1-什么时候会用到拷贝构造函数?2-什么时候有必要手动写拷贝构造函数?1-什么时候会用到拷贝构造函数? 当任何你想复印东西的时候,而不管东西被复印成什么样子。即任何你想利用一个已有的类实例给另一个类实例赋值时,这种赋值可能是显式的,也可能是隐式的显式:classa_1=class_2;隐式:函数的形参有用到类对象却没有用引用或传址技术时 函数的返回值是一个对象也没有应用传址技术时2-什么时候有必要用拷贝构造函数?上述3种情况,如果没有涉及到深拷贝问题,就没有必要自己来编写拷贝构造函数,编译器有默认的可以很完美的完成任务还一种情况就是变态的拷贝:在拷内过程中进行缩放, 阅读全文
摘要:
AfxMessageBox的函数原型intAfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );int AFXAPIAfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) –1 );在第一种形式中,lpszText表示在消息框内部显示的文本,消息框的标题为应用程序的可执行文件名(如Hello)。在第二种形式中,nIDPrompt为要显示的文本字符串在字符串表中的ID。函数调用时会自动从字符串表中载入字符串并显示在消息 阅读全文
摘要:
在Windows中,字符集编码有两种:ANSI和Unicode。ANSI使用单字节,一般用于处理英文,而中文是双字节字符。所以,在处理中文字符时,ANSI编码有时会不方便,出现半个汉字的情况,于是就造成乱码。Unicode编码使用双字节,即每个字符都占两个字节,这可以很好地兼容汉字。因为不能确定编译完的程序最终会用在什么环境什么字符集上,所有为了提高兼容性,我们一般要在中文字符串前,加宏_T,_TEXT。比如:_T(”你好,MFC“)若程序以ANSI格式编译,则_T宏其实没有起任何作用若程序以Unicode格式编译,则_T会把”你好,MFC“以Unicode格式保存,中英文都被处理。而另一个_ 阅读全文
摘要:
K Nearest Neighbors这个算法首先贮藏所有的训练样本,然后通过分析(包括选举,计算加权和等方式)一个新样本周围K个最近邻以给出该样本的相应值。这种方法有时候被称作“基于样本的学习”,即为了预测,我们对于给定的输入搜索最近的已知其相应的特征向量。class CvKNearest : public CvStatModel //继承自ML库中的统计模型基类{public:CvKNearest();//无参构造函数virtual ~CvKNearest(); //虚函数定义CvKNearest( const CvMat* _train_data, const CvMat* _respo 阅读全文
摘要:
右图中,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。knn的思想比较简单,从训练样本中找出K个与其最相近的样本,然后看这k个样本中哪个类别的样本多,则待判定的值(或说抽样)就属于这个类别。公式表示为:1,对所有的样本求距离 ,然后选出K个最近的2,从这k个样本中找出含有样本最多的所属类别:缺点:1,k值需要预先设定,而不能自适应。2当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居 阅读全文
摘要:
Opencv中cvCopy()和cvCloneImage()的区别:1 cvCopy的原型是:void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL );在使用这个函数之前,你必须用cvCreateImage()一类的函数先开一段内存,然后传递给dst。cvCopy会把src中的数据复制到dst的内存中。2 cvCloneImage的原型是:IplImage* cvCloneImage( const IplImage* image );在使用函数之前,不用开辟内存。该函数会自己开一段内存,然后复制好image里面的数据 阅读全文
摘要:
1.关于某函数返回指针问题:1 int *func(int a[])2 {3 int * b = a;4 return b;//指针b并没有被释放5 }6 7 int *c = func(array);看上面的这个例子,指针b在函数func内没有被释放。在IOS里面,一般的措施是 return [b autorelease]; 编译器会自动跟踪b对象的使用情况,自动释放。但在c/c++里面是没有autorelease机制的。那怎么办呢?我们要明确一个问题,在上面的例子中,是肯定会发生内存泄露的。处理的方法是,在调用的地方,对接收者进行释放,即在使用完c指针后,对c进行释放... 阅读全文
摘要:
由于之前接触过一段时间IOS,在IOS里面内存管理很重要,而且对于初学者来说是件不大容易的事情,必须处处小心。重新回到C/c++编程时,有几个概念一直纠缠不清,有点跟IOS混掉的味道了。所以,这里就理理思路:先看个例子:1 int a = 4;2 int b = a;3 a ++;//b此时为何值?这是最经常遇到的小例子,以前总是不在意,没有去细细想清楚。在上面这种情况下,b会随着a变化而变化吗?NO。b此时仍旧是4。这里的a、b只是一种“标签”,可以看作贴在箱子上的标签,这里的“箱子”就是内存块。标签就代表着实际的... 阅读全文
摘要:
1 #include <opencv2/core/core.hpp> 2 #include <opencv2/highgui/highgui.hpp> 3 #include <opencv2/imgproc/imgproc.hpp> 4 #include <iostream> 5 6 using namespace std; 7 using namespace cv; 8 9 int main() 10 { 11 //打开视频文件:其实就是建立一个VideoCapture结构 12 VideoCapture capture("D:/vi 阅读全文
摘要:
直方图(Histogram)又称柱状图、质量分布图,是一种统计报告图。直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。在图像处理上,直方图是图像信息统计的有力工具。 灰度直方图是指对图像的灰度信息进行统计,我们知道灰度图在图像处理中应用非常广泛,在前面的《OpenCV第三篇Canny边缘检测》、《OpenCV第五篇轮廓检测上》、《OpenCV第六篇轮廓检测下》均能找到灰度图的用武之地。因此灰度直方图具有较高的实用价值。下面先介绍灰度直方图的几个主要函数。一.cvCreateHist函数功能:创建直方图函数原型:CVAPI(CvHistogra 阅读全文