Python 检测180度旋转并从阵列中删除旋转的元素
我想检测具有以下点矩阵的第二张图片b)是否实际上是旋转后的第一张图片a),而图片c)不是。首先,我想删除两个任意矩阵之间的重复点,并检测它们在旋转后是否相同。如果旋转后它们是一样的,我想去掉第二个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
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])