今回は、前回作ったマーカーをウェブカメラで検出します。ウェブカメラの映像を読み込む方法は前の記事(http://blog.livedoor.jp/chisato_tofu/archives/25032246.html)を参照してください。
4行目で使用する辞書情報を取得しているのでここを変更すると5X5やもっと多い数のマーカーなども使用できるはずです。
17行目でマーカーを検出し、19行目で描画しています。
これを実行すると↓のように読み取ることができるはずです。
- import cv2
- aruco = cv2.aruco
- dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)
- def arReader():
- cap = cv2.VideoCapture(0)
- while True:
- ret, frame = cap.read()
- Height, Width = frame.shape[:2]
- img = cv2.resize(frame,(int(Width),int(Height)))
- corners, ids, rejectedImgPoints = aruco.detectMarkers(img, dictionary)
- aruco.drawDetectedMarkers(img, corners, ids, (0,255,0))
- cv2.imshow('drawDetectedMarkers', img)
- key = cv2.waitKey(1) & 0xFF
- if key == ord('q'): break
- cap.release()
- cv2.destroyAllWindows()
- arReader()
17行目でマーカーを検出し、19行目で描画しています。
これを実行すると↓のように読み取ることができるはずです。
ちさと@chisao_62OpenCV+Arucoで遊んでいる https://t.co/nWHOE9wbAX
2020/10/17 23:33:36