今天笔试遇到这个题目,原来是图像中的问题:判断图像中检测到的两个人脸框矩形是否有重叠部分,并计算重叠大小,从而确认是否为同一个人脸。
直接判断的话,情况有点多,比如:
这样代码就比较繁琐了。
如果是先考虑没有重叠呢?
如上图所示,没有重叠的话,可以分为四种情况,假设红色矩形为A,绿色矩形为B,那么B可以分别在A的上、下、左、右四种情况。
设A的左上角坐标为p1,右下角坐标为p2,B的左上角坐标为p3,右下角坐标为p4,假设边重叠不算重叠。
当B在A的上方时: p 1 . y ≤ p 4 . y p_1.y \leq p_4.y p1.y≤p4.y
当B在A的下方时: p 3 . y ≤ p 2 . y p_3.y \leq p_2.y p3.y≤p2.y
当B在A的左方时: p 1 . x ≥ p 4 . x p_1.x \geq p_4.x p1.x≥p4.x
当B在A的右方时: p 2 . x ≤ p 3 . x p_2.x \leq p_3.x p2<