Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_points(image):
- aruco_dict = aruco.Dictionary_get(cv2.aruco.DICT_6X6_50)
- parameters = aruco.DetectorParameters_create()
- corners, ids, rejectedImgPoints = aruco.detectMarkers(
- image, aruco_dict, parameters=parameters)
- marks = dict()
- dist = list()
- for y in range(len(rejectedImgPoints)):
- k = (abs(rejectedImgPoints[y][0][0][0] - rejectedImgPoints[y][0][2][0]) +
- abs(rejectedImgPoints[y][0][0][1] - rejectedImgPoints[y][0][2][1]))
- if k in marks.keys():
- k += 0.5
- marks[k] = y
- dist.append(k)
- dist.sort()
- dist.reverse()
- newrejectedImgPoints = [rejectedImgPoints[marks[i]] for i in dist[:4]]
- for i in range(len(newrejectedImgPoints)):
- numpy.append(newrejectedImgPoints[i][0],
- [newrejectedImgPoints[i][0][1][0], newrejectedImgPoints[i][0][0][1]])
- numpy.append(newrejectedImgPoints[i][0],
- [newrejectedImgPoints[i][0][1][1], newrejectedImgPoints[i][0][0][0]])
- x = 0
- y = 0
- for t in range(len(newrejectedImgPoints)):
- for i in newrejectedImgPoints[t][0]:
- x += i[0]
- y += i[1]
- MeanPoint = Point(x / 16, y / 16)
- Points = list()
- for t in range(len(newrejectedImgPoints)):
- y = 10 ** 9
- for i in newrejectedImgPoints[t][0]:
- if abs(i[1] - MeanPoint.y) + abs(i[0] - MeanPoint.x) < y:
- x = i
- y = abs(i[1] - MeanPoint.y) + abs(i[0] - MeanPoint.x)
- Points.append(x)
- file = open(r'C:\DATA_SCIENTIST\ONTI\Kek-scripts\test.txt', 'w')
- file.write(" ".join([str(i) for i in list(itertools.chain.from_iterable(Points))]))
Add Comment
Please, Sign In to add comment