C/C++
nongfu_spring
这个作者很懒,什么都没留下…
展开
-
在vector的循环中调用erase
在使用vector的过程中,有时会遇到需要循环遍历vector,并删除符合指定条件的元素。当“指定条件”不复杂时,应该尽量使用erase(remove_if(begin, end, func), end)的形式来完成功能。但有时候“指定条件”过于复杂,不得不显式地写一个for循环来处理。我们必须小心在意erase所带来的side effect,一个一般性的for循环如下: 1原创 2014-03-14 09:44:26 · 1099 阅读 · 1 评论 -
DispatchMessage, SendMessage
SendMessage实现sendmessage发送消息的接收,在消息的接收方,覆写DefWindowProc(),在该方法中即可接收到sendmessage方法发送来的消息。因为sendmessage发送的消息,不再经过消息队列,而是直接发送给指定对象。所以一般的消息响应,包括PreTranslateMessage方法都无法接收到该信息,只能通过覆写DefWindowProc方法,来接收信息原创 2014-03-14 17:48:16 · 1885 阅读 · 0 评论 -
计算积分图
积分图是为了加速计算HAAR特征值,积分图中每个点的值代表“积分”,即计算相应矩形框中所有像素的累积和。该矩形框的左上角为图像原点,右下角为图像每一点的位置。积分图比原图多一行和一列,分别对应原图像最上面和最左面,即最上面对应以最上面的点为矩形框右下角,此时累积和都为0;最左面对应以最左面的点为矩形框右下角,此时累积和也都为0。 为了方便计算积分图,每一点的值为以下二者的和:1.原创 2014-09-01 11:07:53 · 1214 阅读 · 0 评论 -
并查集---partition函数使用
本文主要介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。更多的信息可以参考Algorithms一书的Section 1.5,实际上本文也就是基于它的一篇读后感吧。原文中更多的是给出一些结论,我尝试给出一些思路上的过程,即为什么要使用这个方法,而不是别的什么方法。我觉得这个可能更加有意义一些,相比于记下一些结论。关于动态连通性我们看一张图原创 2014-09-01 11:25:45 · 947 阅读 · 0 评论 -
groupRectangles函数详解
templatetypename_Tp, class _EqPredicate> intpartition(const vector_Tp>&_vec, vectorint>&labels, _EqPredicate predicate=_EqPredicate()){ inti, j, N = (int)_vec.size原创 2014-09-01 11:25:45 · 3878 阅读 · 1 评论 -
Opencv中meanShiftSegmentation的实现
Opencv中meanshift的实现1.样例在opencv-2.4.6.1\samples\cpp的meanShift_Segmentation.cpp中staticvoid meanShiftSegmentation(int, void* ){ cout <<"spatialRad=" spatialRad <<"; " "colorR原创 2014-09-01 19:19:26 · 1938 阅读 · 1 评论 -
casecade结构和HAAR检测流程
//使用样例,其中_cascade为CvHaarClassifierCascade结构,//cascade为CvHidHaarClassifierCascade结构for(i = 0; i _cascade->count; i++ ){ intj, k, l; for(j = 0; j cascade->stage_classifier[i]原创 2014-09-01 11:16:47 · 7852 阅读 · 1 评论 -
explicit
explicit作用:在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的构造函数。转载 2016-05-27 11:00:16 · 360 阅读 · 0 评论