Python으로 AR 마커를 영상에서 검색

6208 단어 Python3OpenCVArUco

영상에서 AR을 찾고 싶습니다.



로봇 등을 하고 있으면 AR 마커를 랜드마크로 여러가지하고 싶어진다.
이번에는 python3과 opencv로 쉽게 카메라에서 AR 마커를 찾아 간다.

환경



python3.5.4
matplotlib

opencv (contribute가 들어있는 사람)

opencv-contribute를 넣는 방법



일반 opencv에서는 안됩니다.
라이센스 관계로 aruco가 들어 있지 않은 것 같습니다.
어른의 세계는 무섭다.
pip uninstall opencv-python일반 버전의 opencv 제거
pip install opencv-contrib-python원하는 opencv 설치

AR 마커 만들기



generate.py
import cv2
import matplotlib.pyplot as plt

aruco = cv2.aruco
dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)
generator = aruco.drawMarker(dictionary, 0, 100)#第2引数がID 第3引数がピクセルサイズ
plt.imshow(generator)
plt.show()


이런 윈도우가 표시될 것

이것을 회색조 이미지로 저장

웹캠에서 AR 마커 찾기



opencv 님의 튜토리얼에서 web 카메라의 취급이 쓰여 있기 때문에 그것을 개조

main.py
import cv2
import numpy as np
import matplotlib.pyplot as plt

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS,15)
aruco = cv2.aruco
dictionary = aruco.getPredefinedDictionary(aruco.DICT_4X4_50)
while(True):
    ret, frame = cap.read()

    corners, ids, rejectedImgPoints = aruco.detectMarkers(frame, dictionary)
    #ここで映像からマーカーを検出

    aruco.drawDetectedMarkers(frame, corners, ids, (0,255,0))
  #マーカーを描画

    cv2.imshow('frame',frame)
    print(cap.get(cv2.CAP_PROP_FPS))

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

15 행에서 이것이 움직이는 OPPYTHON 너무 엄청 피 c. 라고 r. 이 m / f3Z GF — tayutayu (@tayutayufk) May 20, 2020


이런 식으로 상당히 정확하게 움직여줍니다



마지막으로



python은 하고 싶은 일을 바로 할 수 있지만

쓰마란

CUDA로 고르고 싶다면 ....


좋은 웹페이지 즐겨찾기