C++ opencv之直方图反向投影(calcBackProject)

本文介绍了直方图反向投影的概念,它记录了图像中像素点如何适应直方图模型,并提供了API函数的使用,包括函数原型和代码示例,适用于物体特征识别和分割。
摘要由CSDN通过智能技术生成

这篇博客我们学习直方图反向投影。

一、主要内容

1.1 概述

反向投影是一种记录给定图像中的像素点如何适应直方图模型像素分布的方式,简单来讲,反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找图像中存在的特征。反向投影在某一位置的值就是原图对应位置像素值在原图像中的总数目。

1.2 一般步骤

反向投影是将特征“反映”到图像上,对于物体特征识别和分割有着很大的作用。

进行反向投影的一般步骤:

 1、获取直方图的源,比如我们要对手进行反向投影,那么直方图的源就是肤色的ROI
 2、获取需要反向投影的图像
 3、计算直方图,通常是在HSV模型中计算,毕竟反向投影的一大工作就是区分颜色
 4、反向投影
 5、显示

二、API函数

2.1函数原型

void cv::calcBackProject    (   const Mat *     images,
        int     nimages,
        const int *     channels,
        InputArray      hist,
        OutputArray     backProject,
        const float **      ranges,
        double      scale = 1,
        bool    uniform = true 
    )

参数解释:

const Mat* images:输入图像,图像深度必须位CV_8U,CV_16U或CV_32F中的一种,尺寸相同,每一幅图像都可以有任意的通道数
int nimages:输入图像的数量
const int* channels:用于计算反向投影的通道列表,通道数必须与直方图维度相匹配,第一个数组的通道是从0到image[0].channels()-1,第二个数组通道从图像image[0].channels()到image[0].channels()+image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值