Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

RasPi4b + Webcam + ArUcoでARマーカー追従のロボット その3:マーカーの位置によって

実際のところ

前回のをベースに、中心点から一定量以上動いた場合に右か左かを判定するような簡単なのを。

#! /bin/python
import cv2

aruco = cv2.aruco
img = cv2.imread("1.jpg")
dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)
corners, ids, rejectedImgPoints = aruco.detectMarkers(img, dictionary)
aruco.drawDetectedMarkers(img, corners, ids, (0, 255, 0))
print(corners[0])

corner = corners[0]
val_x = int(( int(corner[0][0][0]) + int(corner[0][1][0]) ) / 2)

img_x = img.shape[1]
val_right = int(img_x * 0.6)
val_left  = int(img_x * 0.4)

if ( val_x > val_right ) :
  print("right")
elif ( val_x < val_left ) :
  print("left")
else:
  print("none")


cv2.imshow("Result", img)
cv2.waitKey(0)
cv2.destroyAllWindows()