gpt4 book ai didi

c++ - 全局初始化 C++ 类

转载 作者:行者123 更新时间:2023-11-30 05:17:54 29 4
gpt4 key购买 nike

我是 C++ 类(class)和使用 dlib 人脸检测器的初学者。在用于网络摄像头的示例代码中,人脸检测和姿势模型加载到主函数中,如下所示:

int main(){
frontal_face_detector detector = get_frontal_face_detector();
shape_predictor pose_model;
deserialize("shape_predictor_68_face_landmarks.dat") >> pose_model;

但是,我的项目的结构是通过另一个函数调用 dlib 人脸检测,而不是像示例中那样调用 main。因此,我需要使模型成为全局模型,以便执行 dlib 的函数知道“检测器”和“pose_model”是什么,而不必将其作为参数传递给该函数。有没有办法做到这一点?如果我在函数本身内部加载模型,那么每次调用该函数时都会加载它,从而降低性能。

静态 dlib::frontal_face_detector 检测器; 静态 dlib::shape_predictor pose_model;

目前我正在使用“静态”将它们加载到函数本身中,但我不确定这是否是正确的 C++?很抱歉问题的格式很奇怪,因为这是我在这个论坛上的第一个问题。感谢理解和帮助!!谢谢

最佳答案

您可以像初始化任何其他全局变量一样在初始化它们时简单地全局声明它们。

frontal_face_detector detector = get_frontal_face_detector();
shape_predictor pose_model;

int main(){

deserialize("shape_predictor_68_face_landmarks.dat") >> pose_model;
...
}

关于c++ - 全局初始化 C++ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41962166/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com