const、引用初探

  当我们声明一个常量:const double minWage = 9.60;我们是否可以这样 double *ptr = &minWage;答案显然是不可能的,因为prt是一个普通指针,没有什么能够阻止我们写这样的代码:*prt += 1.40;//修改了minWage! 这样就间接的修改了minWage的值。

  我们必须声明一个指向常量的指针来做这件事:const double *cptr; //cptr是一个指向double 类型的const指针,即:cptr是一个指向double类型的、被定义成const的对象指针。

  但其中的微妙在于cptr本身不是常量,我们可以重新赋值cptr,使其指向不同的对象,但不能修改cptr指向的值 。

例如:const double *pc = 0;

     const double minWage = 9.60;

    pc = &minWage; //ok

    *pc  = 3.14; //error

  const对象的地址只能赋值给指向const 对象的指针,例如pc。但是指向const对象的指针可以被赋以一个非const对象的地址,例如:int dval = 10; cont int *pc = &dval;虽然dval不是常量,但试图通过pc修改它的值,仍会导致编译错误。

  在实际的程序中,指向const的指针常被用作函数的形式参数。这样能保证被传递给函数的实际对象在函数中不会被修改。例如:int strcmp(const char *str1,const char *str2);

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

引用类型:

  引用类型在声明的时候必须初始化,例如 int  a = 10;  int &b = a ;//ok   int &c ; //error

  引用一旦被初始化就不能再指向其他的对象了。

  const引用可以用不同类型的对象初始化(只要能从一种类型转换到另一种类型即可),也可以是文字常量。例如:

  double dval = 3.14;

  //仅对于const引用才是合法的

  const int &ir = 1024;

  const int &ir = dval;

  const double &dr = dval + 1.0;

  同样的初始化对于非const引用是不合法的,将导致编译错误。引用在内部存放的是一个对象的地址,它是该对象的别名。对于文字常量,以及不同类型的对象,编译器为实现引用,必须生成一个临时对象,引用实际上指向该对象,但用户不能访问。例如,我们编写这样的语句:double dval = 1024;

  const int &ri = dval;

编译器将其转换成:int temp = dval;

         const int &ri = temp;

如果我们给ri赋一个新值,则这样做不会改变dval,而是改变temp。但对用户来说,就好像修改动作没有生效。

转载于:https://www.cnblogs.com/z-road/archive/2012/09/15/2686139.html

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值