直方图反向投影
通俗来讲,反向投影就像是在一幅大图里找小图。
假设一张小的动物图片,知道这动物的颜色特点(通过直方图来表示颜色分布)。反向投影就是把这个颜色特点信息,像撒种子一样撒到一张大的风景图里。
这样,风景图里每个地方都会根据和动物颜色的匹配程度有个数值。颜色越像动物的地方,数值越高,就好像在说这个地方越有可能是这个动物。通过这种方式,就能在复杂的大图里找到和小图相似的部分,帮助计算机来发现目标物体在哪里。
相关API:
calcHist是OpenCV库中用于计算图像直方图的函数,以下是它的详细介绍:
函数原型
void cv::calcHist( const Mat* images,
int nimages,
const int* channels,
InputArray mask,
OutputArray hist,
int dims,
const int* histSize,
const float** ranges,
bool uniform = true,
bool accumulate = false );
参数说明
1. images:
是一个指向 Mat 类型的指针(可以是单个图像,也用数组形式传入多个图像),表示要计算直方图的源图像数据。例如,要计算一张图像的直方图,就传入该图像对应的 Mat 对象的地址(像 &image 这种形式,image 为 Mat 类型的图像变量)。
2. nimages:
指明参与直方图计算的图像数量,若只是针对单张图像计算直方图,通常传入 1;如果是多张图像一起计算(比如做图像序列的直方图统计等情况),就传入对应图像的数量值。
3. channels:
是一个整型数组,用于指定参与直方图计算的图像通道。例如在彩色图像中(常见如RGB通道或者HSV通道),可以指定具体哪些通道的数据用来构建直方图。通道的索引从 0 开始计数,比如对于RGB图像