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{});
	}
}
下一步,别的函数如何调用:
  1. 先引入YOLOV7.h头文件
  2. 函数中用到指针要先声明,再creat
AlgorithmModule::YOLOV7Ptr yolovPtr = AlgorithmModule::YOLOV7::create();    //这步同时做了声明和create

也可以这么写

先在需要引用的.h文件中,private中声明
AlgorithmModule::YOLOV7Ptr yolovPtr;

再在cpp文件中creat
yolovPtr = AlgorithmModule::YOLOV7::create();
  1. 就可以用声明后的名字去调用函数了
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://pwwzsj.com/article/dopseh.html