JS高级程序设计--读书笔记(BOM对象)

本文详细介绍了浏览器对象模型(BOM)中的两个核心对象:window和location。解释了window作为全局对象的角色及其属性与方法,包括全局作用域的概念、窗口与框架的关系、窗口位置和大小的获取方法等。同时,对location对象进行了阐述,包括其属性和如何通过该对象进行页面跳转。
1,window对象
BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,‘它既是通过Javacript访问浏览器的一个接口,又是ECMAScript规定的Global对象。
<1>全局作用域
所有在全局作用域中声明的变量函数都会变成window对象的属性与方法。如下:
function say(){
alert("hello");
}
window.say();//hello
全局变量与window属性区别:全局变量不能通过delete操作符删除,而window属性可以。例如:
var age=20;
window.color="red";


delete window.age;//return false;


delete window.color;//return true;
<2>窗口与框架关系:
如果页面中包含框架,则每个框架都有自己的window属性,并且包含在frames集合中。在frames集合中可以通过数值索引(从0开始)来访问相应的window对象。
<3>窗口位置:
--ie,safari,opera和chrome都有screenLeft和screentop属性。firefox则是screenX和screenY。跨浏览器取得窗口左边与上边位置:


var leftPos=(typeof window.screenLeft=="number")?
window.screenLeft:window.screenX;


var topPos=(typeof window.screenTop=="number")?
window.screenTop:window.screenY;
<4>窗口大小
--innerWidth,innerHeight,outerWidth,outerHeight


outerWidth和outerHeight返回的是浏览器窗口本身的尺寸,innerWidth和innerHeight返回的是页面视图的大小(减去边框值);在ie,firefox,safari和chrome中,document.documentElement.clientWidth和document.documentElement.clientHeight保存了页面视图的信息。
在ie6中,这些属性必须在标准模式下才有效;如果是混杂模式,就必须通过document.body.clientWith和document.body.clientHeight取得相同信息。跨浏览器取得窗口大小:
var pageWidth=window.innerWidth,
pageHeight=window.innerHeight;


if(typeof pageWidth!="number"){
if(document.compatMode=="CSS1Compat"){
pageWidth=document.documentElement.clientWidth;
pageHeight=document.documentElement.clientHeight;
}else{
pageWidth=document.body.clientWidth;
pageHeight=document.body.clientHeight;
}
}
2,location对象
location对象是最有用的BOM对象之一,它既是window对象的属性,也是document对象的属性。window.location与document.location引用的是同一个对象。
location对象的用处不止表现在它保存当前的文档,还表现在它将url解析为独立的片段。下表为location对象所有属性:


hash 返回url中的hash,如果url中不包含散列,则返回空字符串
host 返回服务器名称与端口号
hostname 返回不带端口号的服务器名称
href 返回当前加载页面的完整url
pathname 返回url的目录和文件名
port 返回端口号
protocol 返回页面使用协议。通常是http:或https:
位置操作:
使用location对象可以通过很多方式改变浏览器的位置。最常用的方式,如下:
location.assign("url");
这样,可立即打开新url的路径。
直接修改location的属性也可以更改url。
本指南详细阐述基于Python编程语言结合OpenCV计算机视觉库构建实时眼部状态分析系统的技术流程。该系统能够准确识别眼部区域,并对眨眼动作与持续闭眼状态进行判别。OpenCV作为功能强大的图像处理工具库,配合Python简洁的语法特性与丰富的第三方模块支持,为开发此类视觉应用提供了理想环境。 在环境配置阶段,除基础Python运行环境外,还需安装OpenCV核心模块与dlib机器学习库。dlib库内置的HOG(方向梯度直方图)特征检测算法在面部特征定位方面表现卓越。 技术实现包含以下关键环节: - 面部区域检测:采用预训练的Haar级联分类器或HOG特征检测器完成初始人脸定位,为后续眼部分析建立基础坐标系 - 眼部精确定位:基于已识别的人脸区域,运用dlib提供的面部特征点预测模型准确标定双眼位置坐标 - 眼睑轮廓分析:通过OpenCV的轮廓提取算法精确勾勒眼睑边缘形态,为状态判别提供几何特征依据 - 眨眼动作识别:通过连续帧序列分析眼睑开合度变化,建立动态阈值模型判断瞬时闭合动作 - 持续闭眼检测:设定更严格的状态持续时间与闭合程度双重标准,准确识别长时间闭眼行为 - 实时处理架构:构建视频流处理管线,通过帧捕获、特征分析、状态判断的循环流程实现实时监控 完整的技术文档应包含模块化代码实现、依赖库安装指引、参数调优指南及常见问题解决方案。示例代码需具备完整的错误处理机制与性能优化建议,涵盖图像预处理、光照补偿等实际应用中的关键技术点。 掌握该技术体系不仅有助于深入理解计算机视觉原理,更为疲劳驾驶预警、医疗监护等实际应用场景提供了可靠的技术基础。后续优化方向可包括多模态特征融合、深度学习模型集成等进阶研究领域。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
本项目是一个基于STM32的人脸识别系统,利用OPENCV库进行图像处理,采用QT作为图形界面开发。该系统具备人脸采集、图片训练、数据库管理及人脸识别等功能,能够长时间稳定运行,并提供了统一的接口以便进行二次开发。 功能特点 人脸采集:系统能够从视频图像中采集人脸数据。 图片训练:通过提取人脸特征进行训练,提高识别准确性。 数据库管理:管理人脸数据,便于后续的识别和处理。 人脸识别:实现对人脸的检测与识别,适用于多种应用场景。 技术原理 本系统采用基于OPENCV的级联分类检测器,通过视频图像提取人脸特征进行训练。主要技术包括: 光线补偿技术:对图像进行补光处理,提高图像质量。 高斯平滑技术:消除图像噪声,提升图像清晰度。 二值化技术:采用局部阈值进行二值化处理,便于后续的人脸定位和特征提取。 应用场景 人脸识别技术在图像处理与视频检索、视频监控、视频显示等方面具有广泛的应用。本系统适用于以下场景: 安全监控:在公共场所进行人脸识别,提高安全监控效率。 身份验证:用于门禁系统、考勤系统等身份验证场景。 智能交互:在智能家居、智能终端等设备中实现人脸识别交互。 开发环境 硬件平台:STM32微控制器 软件平台:OPENCV库、QT图形界面开发工具 使用说明 环境搭建:确保STM32开发环境及OPENCV、QT库已正确安装。 代码编译:按照提供的Makefile文件进行代码编译。 系统运行:将编译后的程序烧录到STM32开发板,启动系统。 功能测试:通过QT界面进行人脸采集、训练和识别功能测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值