Haar特征介绍

Haar特征介绍1 Haar 特征概述 Haar 特征可以理解为卷积模板 如同 prewitt sobel 算子 当然不完全一样 Haar 特征分为三类 边缘特征 线性特征 中心特征和对角线特征 组合成特征模板 特征模板内有白色和黑色两种矩形 定义该模板的特征值为白色矩形像素和减去黑色矩形像素和 Haar 特征值反映了图像的灰度变化情况 例如 脸部的一些特征能由矩形特征简单的描述 如 眼睛要比脸颊颜色要深 鼻梁两侧比鼻梁颜色要深 嘴巴比周围颜色要深等 但矩形特征只对一些简单的图形结构 如边缘 线段较敏感 所以只能描述特定走向 水平

1.Haar特征概述

Haar特征可以理解为卷积模板(如同prewitt、sobel算子,当然不完全一样),Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构,Haar特征多用于人脸检测、行人检测。

Haar特征介绍

2.Haar特征的计算方法 

通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。特征模板在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的值称为“特征值”。矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征,如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。

3.利用积分图Haar特征的加速算法

刚开始认为积分图(Integral image)是个高深的东西,其实很简单。对于一个灰度图像I而言,其积分图也是一张与I尺寸相同的图,只不过该图上任意一点(x,y)的值是指从灰度图像I的左上角与当前点所围成的举行区域内所有像素点灰度值之和,有点耳熟吧。类似于图像直方图与图像累积直方图的关系,这里只不过是二维的图像。

Haar特征介绍

       当把扫描图像一遍,到达图像右下角像素时,积分图像就构造好了。积分图构造好之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到如图2所示。而Haar-like特征值无非就是两个矩阵像素和的差,同样可以在常数时间内完成。所以矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219377.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:42
下一篇 2026年3月17日 下午10:42


相关推荐

  • Scrapy 2.6 Pipeline 传输管道使用指南

    Scrapy 2.6 Pipeline 传输管道使用指南Python3 的 Scrapy 爬虫框架中进行数据爬取过程中处理抓取数据使用基本包含下面几个步骤 以上进行数据各种处理的过程中就需要进行数据的传输 也就是要使用到 pipline 在 settings py 中释放代码 69 行 ITEM PIPELINES 否则数据库无法写入

    2026年3月17日
    2
  • Windows Server 2008 防火墙开放 Oracle 的1521端口

    Windows Server 2008 防火墙开放 Oracle 的1521端口在防火墙的入站规则中,新建端口规则。过程如下例图片所示:同理可以开放EM用的1158端口。执行完后用下面命令测试telnetSERVER_IP1521参考资料[1]WindowsServer2008防火墙如何配置(5).http://www.bitscn.com/netpro/firewall/200711/118934_

    2022年5月9日
    191
  • Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)

    Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar链接:https://pan.baidu.com/s/1gci6aSIFhEhjY8F48qH39Q提取码:l289复制这段内容后打开百度网盘手机App,操作更方便哦JDK国国内官网下载地址:https://www.oracle.com/cn/java/technologies/javase-downloads.htmlJDK8国内官网下载地址:https://www.oracle.com/cn/j

    2022年7月21日
    110
  • Okio基本使用以及源码分析

    Okio基本使用以及源码分析Okio是什么在OkHttp的源码中经常能看到Okio的身影,所以单独拿出来学习一下,作为OkHttp的低层IO库,Okio确实比传统的java输入输出流读写更加方便高效。Okio补充了java.io和java.nio的不足,使访问、存储和处理数据更加容易,它起初只是作为OKHttp的一个组件,现在你可以独立的使用它来解决一些IO问题。先看下okio库中类之间的关系:okio中最关键的是对于缓存队列的管理,这些优化操作使得okio在复制数据的时候可以减少拷贝次数,来看下okio中数据保存的数据结构是

    2022年5月27日
    43
  • 极大似然估计求解多项式分布参数

    极大似然估计求解多项式分布参数原因今天晚上 老师在看 LDA 数学八卦的时候 问我一个问题 如下图所示 这个多项式分布的参数 采用极大估计是怎么求的呢 当时想了想还真不知道 于是在网上找了资料 学习了一下 特此记录 公式推导很多情况下 假定一个变量 XX 有 kk 个状态 其中 k gt 2k gt 2 每个状态假定的可能性为 p1 p2 pkp 1 p 2 cdots p k 且 ki 1pi 1 sum i 1

    2026年3月18日
    2
  • Java中notify和notifyAll的区别 – 何时以及如何使用

    Java中notify和notifyAll的区别 – 何时以及如何使用用 Java 通知 vsnotifyAlln 和 notifyAll 方法之间有什么区别是棘手的 Java 问题之一 这很容易回答但是一旦访问者提出后续问题 你要么感到困惑 要么无法提供明确的答案 notify 和 notifyAll 之间的主要区别在于 notify 方法只通知一个 Thread notifyAll 方法将通知在该监视器上等待的所有线程或锁定 顺便说一句 这是你在各地阅读的内容 坦率地说 这句话

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号