Python 检测180度旋转并从阵列中删除旋转的元素

Python 检测180度旋转并从阵列中删除旋转的元素,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我想检测具有以下点矩阵的第二张图片b)是否实际上是旋转后的第一张图片a),而图片c)不是。首先,我想删除两个任意矩阵之间的重复点,并检测它们在旋转后是否相同。如果旋转后它们是一样的,我想去掉第二个 def reverse(set1, set2): a_prime =[x for x in set1 if not x in set2] b_prime =[x for x in set1 if not x in set2] reverse = None # will sto

我想检测具有以下点矩阵的第二张图片b)是否实际上是旋转后的第一张图片a),而图片c)不是。首先,我想删除两个任意矩阵之间的重复点,并检测它们在旋转后是否相同。如果旋转后它们是一样的,我想去掉第二个

def reverse(set1, set2):
    a_prime =[x for x in set1 if not x in set2]
    b_prime =[x for x in set1 if not x in set2]
    reverse = None  # will store a tuple of delta_x, delta_y
   for (x1, y1), (x2, y2) in zip(a_prime, b_prime):
        cur_reverse = x2 + x1, y1 + y2
        if not shift:  
            reverse = cur_reverse 
        elif shift != cur_reverse:
            return False 
    return True


a = [[(1, 1), (2, 1)], [(3, 1), (1, 2), (1, 3)], [(3, 1), (3, 2), (1, 3), (2, 3), (3, 3)], [(1, 1), (2, 1), (3, 1), (2, 2), (1, 3)]]
length = len(a)
for i in range(0, length):
    for j in range(1, length):
        if (i<j):
            if (is_shift(a[i], a[j])==True):
                a.remove(a[j])
            else:
                print(a[i])
                print(a[j])
            i -= 1
            j -= 1
            length -= 1
def倒档(设置1、设置2):
a_prime=[x代表集合1中的x,如果不是集合2中的x]
b_prime=[x代表集合1中的x,如果不是集合2中的x]
reverse=None#将存储delta_x,delta_y的元组
对于zip中的(x1,y1),(x2,y2)(a_素数,b_素数):
电流反向=x2+x1,y1+y2
如果不换档:
反向=电流反向
伊里夫班次!=电流反向:
返回错误
返回真值
a=[(1,1),(2,1)],[(3,1),(1,2),(1,3)],[(3,1),(3,2),(1,3),(2,3)],[(1,1),(2,1),(3,1),(2,2),(1,3)]]
长度=长度(a)
对于范围内的i(0,长度):
对于范围(1,长度)内的j:

如果一种方法是将数据放入一个
numpy
数组,然后使用
rot90
和k=2或k=-2,然后将数组与
array\u equal
进行比较,rot90函数可以在二维旋转。我们可以在三维旋转吗?你能告诉我怎么做吗?我总是遇到错误“raise ValueError”(“len(axes)必须是2.”(math.isclose(numpy.rot90(a[i],k=2,轴=(0,1,0)),a[j],rel_tol=1e-3)==True):a.remove(a[j])