我正在尝试实现 Viola Jones 人脸检测算法。
我以为我理解了整个特征概念以及如何使用积分图像计算像素值的面积。但是,我实现它的方式是抛出异常。我意识到这是因为当要计算的区域的高度或宽度为 1 时存在边缘情况。
使用积分图像时描述的方法导致区域的值 = C - (B + D) + A。
但是,如果假设高度为 1 像素,则 B = C 且 A = D。等式不成立,等于零。
如果宽度或高度为 1,如何计算面积?我制作了一个图表,显示高度为 1 所涉及的问题
:
我考虑只是忽略 D 和 C,只做 B - A,虽然它适用于 box1 和 box2,但它不适用于 box 3 和 4。这可能是巧合,它适用于 box1 和 box 2,因为如果我想要第三行的 2 个中间值的区域,仅此而已(整数值 6 和 9),差异是 3,而不是 2。
任何帮助将不胜感激