C++学习记录-创新互联
YOLOV7.h
龙岗ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!namespace AlgorithmModule { // 1. 声明命名空间及定义
class YOLOV7 //2.定义类
{public:
virtual ~YOLOV7() throw();
virtual void setNetConfig(Net_config config) = 0; // 3. 声明函数
virtual void detect(Mat& frame) = 0;
static boost::shared_ptrcreate(); //4.创建creat
};
typedef boost::shared_ptrYOLOV7Ptr; // 5.创建一个Ptr指针,用来被上级调用
}
YOLOV7.cpp
#include "YOLOV7.h" // 1. 包含头文件
namespace AlgorithmModule { class YOLOV7Impl : public YOLOV7 //2.创建一个新类继承.h文件中的类
{public:
YOLOV7Impl() //3.构造函数
{}
void setNetConfig(Net_config config) override{} //4. 在.h文件中声明的函数,现在定义
void detect(Mat& frame) override {}
virtual ~YOLOV7Impl() // 析构函数
{}
private:
int inpWidth; // 5. 声明私有变量,私有变量只能在这里使用
};
YOLOV7::~YOLOV7() // 6. 访问
{}
YOLOV7Ptr YOLOV7::create() // 7. creat YOLOV7Ptr指针
{return YOLOV7Ptr(new YOLOV7Impl{});
}
}
下一步,别的函数如何调用:- 先引入YOLOV7.h头文件
- 函数中用到指针要先声明,再creat
AlgorithmModule::YOLOV7Ptr yolovPtr = AlgorithmModule::YOLOV7::create(); //这步同时做了声明和create
也可以这么写
先在需要引用的.h文件中,private中声明
AlgorithmModule::YOLOV7Ptr yolovPtr;
再在cpp文件中creat
yolovPtr = AlgorithmModule::YOLOV7::create();
- 就可以用声明后的名字去调用函数了
bool batchPlate2DDetect(cv::Mat& srcImage,cv::Mat &dstImage, ErrorCode &errorCode)
{ bool isBatchPlate2DDetectSuccess = true;
dstImage = srcImage.clone();
//重点
AlgorithmModule::Net_config YOLOV7_nets = {0.3, 0.5, GlobalPathParam::instance()->getYolov7Path() };
AlgorithmModule::YOLOV7Ptr yolovPtr = AlgorithmModule::YOLOV7::create(); //这步同时做了声明和create
yolovPtr->setNetConfig(YOLOV7_nets);
yolovPtr->detect(dstImage);
ClassInfoLog("finish imageProcess!");
return isBatchPlate2DDetectSuccess;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前文章:C++学习记录-创新互联
转载源于:http://cdiso.cn/article/dopseh.html