zoukankan      html  css  js  c++  java
  • opencv 直方图反向投影

           直方图反向投影式通过给定的直方图信息,在图像找到相应的像素分布区域,opencv提供两种算法,一个是基于像素的,一个是基于块的。

    使用方法不写了,可以参考一下几个网站:

    直方图反向投影参考1

    直方图参考2

    测试例子1:灰度直方图反向投影

    灰度直方图反向投影

    效果图:

     2
    第一个图为源图像,中间的那个小图像是产生用于反向投影的直方图的图像,最后的用直方图均衡化后的结果图像,可以看到,苹果的像素位置几被找到了。

    测试例子2:彩色直方图反向投影测试

    彩色图像直方图反向投影

    测试结果:

     QQ截图20120620142552

    手的肤色位置基本找到了,但是有一个问题,在做直方图反向的时候,直方图分级是16等分,并不是256等分,下图是32等分和8等分的图像效果:

    4      32等分 5 8等分

    程序里面使用了SHV分量,也算是肤色检测的一个实例,里面的颜色区分很明显,所有采用大一点的区域统计,能更好的找到肤色的位置,如果采用很细的颜色区分,光照的影响也会考虑进去了。

    测试例子3:基于块的直方图投影

    这种方法速度很慢,模版图像别弄的太大了。

    基于块的图像直方图反向投影


    测试图像:

    当模版图像小雨目标的时候,作为区域检测器,测试如下:可以找到手区域

    6

    当模版等于目标的时候,测试如下:输出图像,较亮的部分就是人的头部大致位置

    7

    基于块的反向,速度太慢了。

  • 相关阅读:
    HDOJ 1028 母函数分析
    尼姆博弈的典型例题
    HDOJ1232 畅通工程 DFS
    第一个八皇后
    HDOJ 1242
    我的“插入算法”实现
    第五讲 this 类变量 类方法
    我的“二分查找算法”实现
    我对锤子ROM 功能的看法——视觉篇
    第六讲 Java 四大特性:抽象 封装 继承 多态
  • 原文地址:https://www.cnblogs.com/zsb517/p/2556508.html
Copyright © 2011-2022 走看看