STL-vector清空的几种方法加代码梳理
在做行人检测的项目(HOG+SVM方法)时,因为要计算每幅图像的hog描述子向量,通过调用hog的compute方法,需要传入一个描述子向量:
HOGDescriptor hog;
vector<float> descriptors;
hog.compute(src/*inputImage*/, descriptors, Size(8,8)/*stride of detection window*/);
在每次运行hog.compute()方法后,本次循环结束,需要释放本次循环声明的变量,并析构他的内存空间,也就是析构descriptors向量的空间,就在这个时候程序莫名报错了,跟踪发现是vector析构时出错,在声明descriptors时给定分配空间大小后问题解决:
HOGDescriptor hog;
vector<float> descriptors(4000)//64*128图像的默认hog特征参数的描述子向量长度为3780;
hog.compute(src/*inputImage*/, descriptors, S