`
saybody
  • 浏览: 923702 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Learning OpenCV --- Histograms and Matching 直方图与匹配

阅读更多

第七章:Histograms and Matching 直方图与匹配<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在分析图像、物体和视频信息的过程中,我们常常想表示称之“直方图”的东西。直方图可以用来描述各种不同的事情,如物体的色彩分布、物体边缘梯度模板[Freeman95],以及表示目标位置的当前假设的概率分布。图7-1显示如果利用直方图进行快速姿态识别。边缘梯度从“上”,“右”,“左”,“停”和“正常”等手性姿态中得到。然后设置一个网络摄像头来观察人的各种姿态以控制网络视频。在每帧中,从输入的视频中检测感兴趣的色彩区域,然后计算这些感兴趣区域周围的边缘梯度方向,将得到的边缘梯度方向放到一个方向直方图相应的bin中,然后将该直方图与姿势模板进行匹配,从而识别出各种姿势。图7-1的垂直条显示不同姿态的匹配程度。灰色的水平线为可接受阈值,表示胜出的对应姿态模型的垂直条。

很多计算机视觉领域都能找到直方图的应用。当视频中的场景帧与帧之间的边缘和颜色统计有明显的变化时,直方图被用来检测这种视频中场景的变化。通过为每个感兴趣点设置一个有相近特征的直方图所构成的”标签”,用以确定图像中感兴趣的点。边缘、色彩、角点等直方图构成了可以被传递给目标识别分类器的一个通用特征类型。色彩和边缘的直方图序列还可以被用来识别网络视频是否被复制等等。直方图是计算机视觉中最经典的工具之一。

简单地说,直方图就是对基本的数据进行某种计数,然后将其组织到一系列事先定义好的bins中。它们是从数据中计算出的特征的统计量,这些数据可以是诸如梯度、方向、色彩、或任何其它特征。无论如何,直方图获得的是数据分布的统计图。通常直方图的维数要低于原始数据。图7-2刻画了一个典型情况。图中我们显示一个二维分布的点集(左上),施加一个网格(右上)并且统计每一个网格单元的数据点,然后产生一个一维直方图(右下)。由于原始数据点可以表征任何事情,直方图实际上是一个方便表示图像特征的手段。

7-1. 方向梯度的局部直方图,用以寻找手及其特征(姿态)。这里“胜出”的姿态(最长的垂直条)就是正确识别的“L”(向左移动)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 378pt; HEIGHT: 324.75pt" alt="" type="#_x0000_t75"><imagedata src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image001.png" o:href="http://safari.oreilly.com/getfile?item=Zi8wNTNpYXM3NXJnY2dtdHBpMTkwOGU5L2Q2NjEvMi5naXAvOWdtN25z"></imagedata></shape>

表示连续分布的直方图通过隐形地计算每个网格单元中点的均值来实现上面的功能[90]。那么会产生一个问题,如图7-3所显示的。如果网格太宽(左上),则平均得太多,结构分布就会丧失。如果网格太窄(右上),不能有足够的平均来准确表示分布而且我们会得到小尖锐的单元。

[90]当直方图利用的是比原始的描述更少的bins时,其表示的图像信息很自然的落到离散的bins里。举例来说,一个10个bin的直方图可以表示8位亮度值的图像:大约每25个灰度级将组合到一个bin中,(错误地)将这些不同灰度级同等对待。

OpenCV有表征直方图的数据类型。该直方图数据结构能够以一维或者多维的方式表示直方图,并且包含所有可能跟踪的的bin中的数据。如我们所设想,它可以配属各种有用的函数,使得我们能够在直方图上容易地进行各种普通的操作。

7-2. 典型的直方图例子:从一个点集开始(左上),施加计算网格(右上),产生点集的一维直方图(右下)

<shape id="_x0000_i1025" style="WIDTH: 387pt; HEIGHT: 291.75pt" alt="" type="#_x0000_t75"><imagedata src="file:///D:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/02/clip_image003.png" o:href="http://safari.oreilly.com/getfile?item=Zi8wNTNpYXM3NXJnY2dtdHBpMTkwOGU5L2Q2NjEvMi5naXAvMWdtOG5z"></imagedata></shape>

分享到:
评论

相关推荐

    opencv-4.5.5-opencv-contrib-4.5.5-以及其他OpenCV配置需要的(安装包)

    opencv-4.5.5-opencv-contrib-4.5.5-以及其他OpenCV配置需要的(安装包) opencv-4.5.5-vc14_vc15.exe opencv_contrib-4.5.5.zip cmake-3.24.0-rc1-windows-x86_64.msi jdk-17_windows-x64_bin.msi VTK-8.2.0.zip

    OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib.zip

    OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib

    opencv-python-4.10.0.84.tar.gz

    9. 图像拼接与全景图创建:通过图像校正和匹配,能够将多张图片无缝拼接成全景图像。 10. 计算机视觉实验:提供许多现成的示例代码和预训练模型,方便开发者进行计算机视觉的实验和研究。 `cv2`是`opencv-python`...

    opencv-4.5.5-1.5.7-API文档-中文版.zip

    赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...

    opencv-453.jar

    opencv-453的4.5.3版本,仓库 失败的可以下载,然后通过maven命令安装到本地仓库,直接应用即可. 1.安装命令: -Dfile具体maven安装路径 mvn install:install-file -Dfile=D:\software\Apache\apache-maven-3.6.2\other\...

    OpenCV-MinGW-Build-OpenCV-3.3.1.zip

    # OpenCV-MinGW-Build MinGW version of OpenCV compiled on Windows. ## [OpenCV 3.4.1](https://github.com/huihut/OpenCV-MinGW-Build/tree/OpenCV-3.4.1) ``` git clone -b OpenCV-3.4.1 git@github....

    android-sdk-opencv-4.5.5&opencv-contrib-4.5.5-arm64-v8a

    1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于arm64-v8a架构,即64bit cpu。

    opencv-python3.4.1.15.zip

    在实际使用中,OpenCV-Python提供了丰富的API供开发者调用,如图像读取、图像处理(如灰度化、直方图均衡化)、特征检测(如SIFT、SURF)、对象识别、视频处理等。通过这些API,开发者可以轻松地实现复杂的计算机...

    opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15 win64版

    opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15 win64版,opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15,支持版本:python3.4,3.5,3.6

    opencv-python-4.10.0.82.tar.gz

    在进行机器学习和深度学习项目时,OpenCV-Python的便利性在于它能够无缝地与其他Python库集成,如NumPy(用于数值计算)、Pandas(数据处理)、Matplotlib(可视化),以及Scikit-learn(机器学习库)等。...

    opencv-4.5.5-1.5.7-API文档-中英对照版.zip

    赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...

    opencv-4.5.1-1.5.5-API文档-中英对照版.zip

    赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...

    opencv_官网 安装包 opencv-4.1.2-vc14_vc15

    opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 ...

    opencv-java480.dll windows 64 opencv-java480.jar下载

    确保`opencv-java480.dll`与你的Java应用程序和JRE(Java运行环境)的位数匹配至关重要,否则可能会出现“找不到指定的模块”之类的错误。 描述中的“opencv_java下载使用”表明了本话题主要关注如何下载和使用...

    opencv-4.9.0-android

    - 图像处理:包括滤波、边缘检测(如Canny、Sobel、Laplacian)、色彩转换(如BGR到灰度、HSV等)、直方图均衡化等。 - 特征检测:如SIFT、SURF、ORB、FAST等,用于图像匹配和物体识别。 - 机器学习:支持SVM、...

    android-sdk-opencv-4.5.5&opencv-contrib-4.5.5-armeabi-v7a

    1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于armeabi-v7a架构,即32bit cpu。

    opencv-4.5.1-1.5.5-API文档-中文版.zip

    赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...

    opencv-4.5.4-android-sdk .zip

    opencv-4.5.4-android-sdk .zip

    opencv-3.2.0-1.jar 下载

    opencv-3.2.0-1.jar opencv-3.2.0-1.jar opencv-3.2.0-1.jar

    opencv-4.4.0-androidopencv-4.5.0-android-sdk

    4. **特征检测与匹配**:OpenCV提供了多种特征检测算法,如SIFT、SURF、ORB等,以及特征匹配方法如BFMatcher、FLANN等,可用于物体识别和图像拼接等场景。 5. **人脸识别与眼动追踪**:OpenCV包含Haar级联分类器和...

Global site tag (gtag.js) - Google Analytics