多个矩形相交

时间:2015-02-16 19:50:20

标签: python arrays opencv numpy rectangles

我有一个包含许多矩形坐标的数组,作为opencv的numpy数组。

rec_arr = [[1404,  677,   73,   73],
           [2670, 1062,  115,  115],
           [2981, 1077,  114,  114],
           [ 691, 1077,  107,  107],
           [2251, 1272,  131,  131],
           [3035, 1239,  139,  139],
           [1050, 1359,  135,  135],
           [ 887, 1663,  149,  149]]

这是从数组x,y,w,h

给出的1个矩形的表示
+--------------------> X axis
|
|    (X,Y)      (X+W, Y)
|    +--------------+
|    |              |
|    |              |
|    |              |
|    +--------------+
v    (X, Y+H)     (X+W,Y+H)

Y axis

我想循环遍历数组,将所有矩形相互比较,然后突出显示相交的矩形。这是我的尝试:

for (x, y, w, h) in rec_arr:
                X1 = x
                Y1 = y
                W1 = w
                H1 = h


                for (x, y, w, h) in rec_arr:
                    X2 = x
                    Y2 = y
                    W2 = w
                    H2 = h

                    if (X1+W1<X2 or X2+W2<X1 or Y1+H1<Y2 or Y2+H2<Y1):
                        print 'no intersect'
                    else:
                        print 'intersect'
                        cv2.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), -1)

我还尝试使用itertools.combinations()来比较阵列中2个矩形的每个组合,但没有成功。任何帮助都会很棒!

0 个答案:

没有答案