getTickCount()为计算时钟数;getTickFrequency()为计算单位时间内的时钟数
double t = (double)getTickCount();
// 做点什么 ...
t = ((double)getTickCount() - t)/getTickFrequency();
cout << "Times passed in seconds: " << t << endl;
参考网址
1、引用方式传参,引用相当于是外部变量的别名,实际操作的就是该变量,即在函数内对该变量进行修改的话,在外部该变量也会相应被修改。
void ChangeRef(int& ref);
2、传值方式传参,实际上是复制了一个外部变量的副本进入函数中,在函数内操作的为该副本,对该变量的修改并不会实际修改函数外的该变量。
void ChangeNotRef(int ref);
3、注意,此处未考虑传入的参数为指针的情况,如果传值方式传入的是指针,那么如果单纯修改指针,那么在跳出函数后,该指针指向不受影响,但是如果修改的是指针指向的值,那么外部指针所指向的内容也是相应修改了的。因为以指针为参数进行传值,也是在函数内部复制了一个指针的副本,因而在内部修改指针本身即修改其副本并不影响外部的指针,但是两个指针都是指向同一个内存空间的,因而如果在函数内部修改了指针指向的内容,外部指针指向的内容也就相应改变了。
//所以! 引用方式传参 &p里修改p 等价于 传值方式(传入的是指针)传参*p里修改指针指向的值 *p
存储轮廓
vector
vector容器里面放了一个vector容器,子容器里放点
vector
放了4维int向量
vector
像素width * height from 位置(x*y)
vector
如图三个成员{angle,center,size}
关于angle,center,size的定义,可以参考 网址
寻找轮廓
findContours( InputOutputArray image, OutputArrayOfArrays contours,
OutputArray hierarchy, int mode,
int method, Point offset=Point());
计算轮廓面积
double contourArea(InputArray contour,bool oriented=false)
计算轮廓长度
arcLength 函数用于计算封闭轮廓的周长或曲线的长度
double arcLength(InputArray curve, bool closed);
参考网页
计算矩的目的
从一幅图像计算出来的矩集,不仅可以描述图像形状的全局特征,而且可以提供大量关于该图像不同的几何特征信息,如大小,位置、方向和形状等。这种描述能力广泛应用于各种图像处理、计算机视觉和机器人技术领域的目标识别与方位估计中。同时矩函数在图像分析中也有着广泛的应用,如模式识别、目标分类、目标识别与方位估计、图像的编码与重构等。
矩的计算:moments 函数
moments 函数可以很方便的计算出多边形区域的最高三阶空间矩,中心矩和归一化中心矩。
Moments moments(InputArray array, bool binnaryImage = false);
容器的话就是vector
1. Rect boundingRect(InputArray points)
points:输入信息,可以为包含点的容器(vector)或是Mat。返回包覆输入信息的最小正矩形。
2. RotatedRect minAreaRect(InputArray points)
points:输入信息,可以为包含点的容器(vector)或是Mat。返回包覆输入信息的最小斜矩形。
drawContours函数
void drawContours(InputOutputArray image,
InputArrayOfArrays contours,
int contourIdx, const Scalar& color,
int thickness=1, int lineType=8,
InputArray hierarchy=noArray(), i
nt maxLevel=INT_MAX, Point offset=Point() )