文章标题

正课:
1. 递归
2. 查询

  1. 递归:
    元素树: 仅包含元素节点的树结构
    何时使用: 只希望访问元素节点时,就使用元素树
    如何使用:
    1.父子: parentElementNode
    children 兼容IE8
    firstElementChild
    lastElementChild
    2.兄弟: previousElementSibling
    nextElementSibling

    遍历API:

    1. NodeIterator:按照深度优先的元素,依次遍历每个节点
      如何使用: 2步:
    2. 创建NodeIterator:
      var iterator=document.createNodeIterator(
      parent,
      NodeFilter.SHOW_ALL/NodeFilter.SHOW_ELEMENT,
      null,false
      );

      1. 调用iterator的前进和后退方法,获得前一个或后一个节点对象:
        var node=iterator.nextNode(); //下一个
        强调: 迭代器开始前,站在parent之前的位置
        第一次nextNode()后,才会站在parent上开始遍历
        *如果nextNode返回null,说明遍历结束
        var node=iterator.previousNode();//前一个
        强调: previousNode()如果仅调用一次,就留在原地
        连续previousNode两次,才退一步
    3. TreeWalker: 基本用法和NodeIterator完全相同
      2点差异:

    4. TreeWalker一开始就已经站在开始节点上
      1. 不但可前后移动,还可向任意方向移动
        parentNode()
        firstChild()
        lastChild()
        previousSibling()
        nextSibling()
  2. 查找:

    1. 按HTML查找: 4种:

      1. 按id查找
        var elem=document.getElementById(“id”);
        强调: 如果没找到,返回null
      2. 按标签名
        var elems=parent.getElementsByTagName(“标签名”);
        强调: 1. 返回多个元素的集合
        即使返回1个,也要[0]
        动态集合: 遍历时,先存个数,再遍历
        1. 可用于查找任何元素下的子元素
        2. 不仅找直接子元素,而且查找所有子元素
      3. 按name属性查找: 逐渐被HTML DOM的form对象代替
        var elems=parent.getElementsByName(“name”);
        比如:




        获得f1: var form=document.forms[“f1”];
        获得uname: var txtUname=form.uname;
      4. 按class属性查找: IE9+
        var elems=parent.getElementsByClassName(“class”);

      强调:如果没找到,返回空集合,length为0

    2. Selector API: 按css选择器查找元素——jQuery核心
      何时使用: 只要查找复杂时,最好用Selector API
      如何使用: 2个API:

      1. 确定只会找到一个元素时:
        var elem=parent.querySelector(“任意选择器”);
        万一选择器匹配多个,只返回第1个
        强调: 如果没找到,返回null
      2. 希望查找多个选择器匹配的元素时
        var elems=parent.querySelectorAll(“… …”);
        强调:querySelectorAll返回非动态集合
        保存了完整的元素属性,每次访问非动态集合,不会导致重新检索DOM树
        如果没找到,返回空集合,length=0
        缺: 返回的效率低!
        **鄙视题:getXXXXByXXX vs querySelectorXXX
        差别:
        返回值:
        动态集合:
        优: 查询结果快,缺: 导致重复检索DOM树
        非动态集合:
        优: 保存元素完整的属性,不会导致重复检索
        缺: 查询效率低
        何时使用:
        如果一次查询即可得出结果,优先选择getXXX
        如果需要多次查询才得到结果,优先选择queryXXX
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值