OpenCV中更高级的直方图方法
在计算机视觉领域,直方图是一种非常重要的工具。前面介绍的内容相对基础,而本文将介绍OpenCV中一些更高级的直方图处理方法,这些方法在特定应用中极为有用。
1. 地球移动距离(Earth Mover’s Distance,EMD)
在处理直方图时,光照变化会导致颜色值发生显著偏移,虽然这种偏移通常不会改变颜色值直方图的形状,但会使颜色值的位置发生移动,从而导致之前介绍的直方图匹配方案失效。传统的直方图匹配度量方法在处理形状相似但位置有偏移的两个直方图时,可能会返回较大的差异值。因此,我们需要一种对这种偏移不太敏感的距离度量方法,地球移动距离(EMD)就是这样一种度量。
1.1 EMD原理
EMD本质上衡量的是将一个直方图形状“铲”成另一个直方图形状所需的工作量,包括将部分或整个直方图移动到新的位置。它可以在任意维度上工作。例如,完全匹配时距离为0;如果只匹配一半,就相当于“一铲子”的一半工作量;将整个直方图向右移动一步则需要一个单位的距离。
1.2 OpenCV中的EMD函数
在OpenCV中,使用 cv::EMD() 函数来计算EMD:
float cv::EMD(
cv::InputArray signature1, // sz1-by-(dims+1) float array
cv::InputArray signature2, // sz2-by-(dims+1) float array
int
超级会员免费看
订阅专栏 解锁全文
1244

被折叠的 条评论
为什么被折叠?



