shalivitalya

Untitled

Mar 28th, 2020
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.69 KB | None | 0 0
  1. def get_points(image):
  2.     aruco_dict = aruco.Dictionary_get(cv2.aruco.DICT_6X6_50)
  3.     parameters = aruco.DetectorParameters_create()
  4.     corners, ids, rejectedImgPoints = aruco.detectMarkers(
  5.         image, aruco_dict, parameters=parameters)
  6.     marks = dict()
  7.     dist = list()
  8.     for y in range(len(rejectedImgPoints)):
  9.         k = (abs(rejectedImgPoints[y][0][0][0] - rejectedImgPoints[y][0][2][0]) +
  10.              abs(rejectedImgPoints[y][0][0][1] - rejectedImgPoints[y][0][2][1]))
  11.         if k in marks.keys():
  12.             k += 0.5
  13.         marks[k] = y
  14.         dist.append(k)
  15.     dist.sort()
  16.     dist.reverse()
  17.     newrejectedImgPoints = [rejectedImgPoints[marks[i]] for i in dist[:4]]
  18.     for i in range(len(newrejectedImgPoints)):
  19.         numpy.append(newrejectedImgPoints[i][0],
  20.                      [newrejectedImgPoints[i][0][1][0], newrejectedImgPoints[i][0][0][1]])
  21.         numpy.append(newrejectedImgPoints[i][0],
  22.                      [newrejectedImgPoints[i][0][1][1], newrejectedImgPoints[i][0][0][0]])
  23.     x = 0
  24.     y = 0
  25.     for t in range(len(newrejectedImgPoints)):
  26.         for i in newrejectedImgPoints[t][0]:
  27.             x += i[0]
  28.             y += i[1]
  29.     MeanPoint = Point(x / 16, y / 16)
  30.     Points = list()
  31.     for t in range(len(newrejectedImgPoints)):
  32.         y = 10 ** 9
  33.         for i in newrejectedImgPoints[t][0]:
  34.             if abs(i[1] - MeanPoint.y) + abs(i[0] - MeanPoint.x) < y:
  35.                 x = i
  36.                 y = abs(i[1] - MeanPoint.y) + abs(i[0] - MeanPoint.x)
  37.         Points.append(x)
  38.     file = open(r'C:\DATA_SCIENTIST\ONTI\Kek-scripts\test.txt', 'w')
  39.     file.write(" ".join([str(i) for i in list(itertools.chain.from_iterable(Points))]))
Add Comment
Please, Sign In to add comment