在函数C++中创建全局变量
Creating global variables in a function C++
我正在使用C++和openCV进行人员跟踪。我正在尝试制作一个应用MOG2背景减法的函数。这是我第一次尝试制作函数。功能如下:
Mat FindMOG2(Mat FrameShown){
MOG2Pointer->apply(FrameShown, MOG2Mask);
// find contours
findContours(MOG2Mask, Contours, Hierachy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
//approximate contours to polygons and get bounding rects
vector<vector<Point> > ContoursPoly(Contours.size());
vector<Rect> MOGRects(Contours.size());
for (int i = 0; i < Contours.size(); i++){
approxPolyDP(Mat(Contours[i]), ContoursPoly[i], 3, true);
MOGRects[i] = boundingRect(Mat(ContoursPoly[i]));
}
//draw bounding rects
Mat Drawing = Mat::zeros(MOG2Mask.size(), CV_8UC3);
for (int i = 0; i < Contours.size(); i++){
vector<Vec4i>(), 0, Point());
rectangle(Drawing, MOGRects[i].tl(), MOGRects[i].br(), Scalar(0, 255, 0), 2, 8, 0);
}
return Drawing;
}
问题是,我还必须在main()之外声明这些"全局"变量
Mat MOG2Mask;
vector<vector<Point> > Contours;
vector<Vec4i> Hierachy;
Ptr<BackgroundSubtractor> MOG2Pointer;
这在主循环中,但在播放视频的while循环之外
MOG2Pointer = createBackgroundSubtractorMOG2();
基本上,我希望函数自动声明这些变量,而不必初始化它们。我是编程新手,所以如果有人能给我指明正确的方向,或者给我一些研究的东西,我将不胜感激。
干杯。
与其全局声明变量,不如在函数范围内声明它们。
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 当vector是tje全局变量时,c++中vector的内存管理
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 内联函数中具有内部链接的全局变量
- std::线程不是全局变量,但在到达创建它的函数的末尾时不会超出范围?
- Qt C++创建一个所有类都可以访问的全局变量
- 我真的可以使用 Type 的每个声明创建一个全局变量吗?
- 为队列创建C 全局变量
- 如何在任何其他全局变量或静态变量之前创建/构造类实例
- 如何创建用于多个源文件的全局变量/包含/函数
- 如何在cuda上创建全局可访问的变量
- 在 llvm 中创建全局变量时出错
- 要创建持久变量,最好是使用局部静态变量还是全局变量
- 在函数C++中创建全局变量
- 从C++源文件创建全局变量列表
- 如何创建一个具有全局变量的 lib 文件,这些全局变量应该将其信息共享给另一个项目
- 如何使.h中创建的变量成为程序的全局作用域
- 创建构造函数引用全局变量的类的全局实例时,C++ 程序崩溃
- 在C++函数中创建数组,而不使用全局变量