我们使用肤色直方图为例来解释反向投影的工作原理:
假设你已经通过下图得到一个肤色直方图(Hue-Saturation), 旁边的直方图就是 模型直方图 ( 代表手掌的皮肤色调).你可以通过掩码操作来抓取手掌所在区域的直方图:
我们要做的就是使用 模型直方图 (代表手掌的皮肤色调) 来检测测试图像中的皮肤区域。以下是检测的步骤:
对测试图像中的每个像素 ( ),获取色调数据并找到该色调(
)在直方图中的bin的位置。
查询 模型直方图 中对应的bin - - 并读取该bin的数值。
将此数值储存在新的图像中(BackProjection)。 你也可以先归一化 模型直方图 ,这样测试图像的输出就可以在屏幕显示了。
通过对测试图像中的每个像素采用以上步骤, 我们得到了下面的 BackProjection 结果图:
装载图像
转换原图像到 HSV 格式,再分离出 Hue 通道来建立直方图 (使用 OpenCV 函数 mixChannels)
让用户输入建立直方图所需的bin的数目。计算同一图像的直方图 (如果bin的数目改变则更新直方图) 和反向投影图。显示反向投影图和直方图。
4.运行结果新闻热点
疑难解答