Python으로 AR 마커를 영상에서 검색
영상에서 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.pyimport 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.pyimport 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
python3.5.4
matplotlib
opencv (contribute가 들어있는 사람)
opencv-contribute를 넣는 방법
일반 opencv에서는 안됩니다.
라이센스 관계로
aruco
가 들어 있지 않은 것 같습니다.어른의 세계는 무섭다.
pip uninstall opencv-python
일반 버전의 opencv 제거pip install opencv-contrib-python
원하는 opencv 설치AR 마커 만들기
generate.pyimport 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.pyimport 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
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()
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로 고르고 싶다면 ....
Reference
이 문제에 관하여(Python으로 AR 마커를 영상에서 검색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tayutayufk/items/9aa615cfb6704c71d0ec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)