video.py final +/- pour lecture de code
This commit is contained in:
parent
57bcd9ac93
commit
9dd0832b16
1 changed files with 81 additions and 0 deletions
81
video.py
Normal file
81
video.py
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
from imutils.video import VideoStream
|
||||||
|
import argparse
|
||||||
|
import imutils
|
||||||
|
import time
|
||||||
|
import cv2
|
||||||
|
import sys
|
||||||
|
import numpy
|
||||||
|
|
||||||
|
ARUCO_DICT = {
|
||||||
|
"DICT_4X4_50": cv2.aruco.DICT_4X4_50,
|
||||||
|
"DICT_4X4_100": cv2.aruco.DICT_4X4_100,
|
||||||
|
"DICT_4X4_250": cv2.aruco.DICT_4X4_250,
|
||||||
|
"DICT_4X4_1000": cv2.aruco.DICT_4X4_1000,
|
||||||
|
"DICT_5X5_50": cv2.aruco.DICT_5X5_50,
|
||||||
|
"DICT_5X5_100": cv2.aruco.DICT_5X5_100,
|
||||||
|
"DICT_5X5_250": cv2.aruco.DICT_5X5_250,
|
||||||
|
"DICT_5X5_1000": cv2.aruco.DICT_5X5_1000,
|
||||||
|
"DICT_6X6_50": cv2.aruco.DICT_6X6_50,
|
||||||
|
"DICT_6X6_100": cv2.aruco.DICT_6X6_100,
|
||||||
|
"DICT_6X6_250": cv2.aruco.DICT_6X6_250,
|
||||||
|
"DICT_6X6_1000": cv2.aruco.DICT_6X6_1000,
|
||||||
|
"DICT_7X7_50": cv2.aruco.DICT_7X7_50,
|
||||||
|
"DICT_7X7_100": cv2.aruco.DICT_7X7_100,
|
||||||
|
"DICT_7X7_250": cv2.aruco.DICT_7X7_250,
|
||||||
|
"DICT_7X7_1000": cv2.aruco.DICT_7X7_1000,
|
||||||
|
"DICT_ARUCO_ORIGINAL": cv2.aruco.DICT_ARUCO_ORIGINAL,
|
||||||
|
"DICT_APRILTAG_16h5": cv2.aruco.DICT_APRILTAG_16h5,
|
||||||
|
"DICT_APRILTAG_25h9": cv2.aruco.DICT_APRILTAG_25h9,
|
||||||
|
"DICT_APRILTAG_36h10": cv2.aruco.DICT_APRILTAG_36h10,
|
||||||
|
"DICT_APRILTAG_36h11": cv2.aruco.DICT_APRILTAG_36h11
|
||||||
|
}
|
||||||
|
|
||||||
|
cap = cv2.VideoCapture(0)
|
||||||
|
aruco_dict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_ARUCO_ORIGINAL)
|
||||||
|
aruco_params = cv2.aruco.DetectorParameters_create()
|
||||||
|
if (cap.isOpened() == False):
|
||||||
|
raise("error opening video input")
|
||||||
|
|
||||||
|
while cap.isOpened() == True:
|
||||||
|
ret, frame = cap.read()
|
||||||
|
|
||||||
|
if ret == True:
|
||||||
|
|
||||||
|
frame = imutils.resize(frame, width=1000)
|
||||||
|
(corners, ids, rejected) = cv2.aruco.detectMarkers(frame,aruco_dict, parameters=aruco_params)
|
||||||
|
if len(corners) > 0:
|
||||||
|
ids = ids.flatten()
|
||||||
|
for (markerCorner, markerID) in zip(corners, ids):
|
||||||
|
corners = markerCorner.reshape((4, 2))
|
||||||
|
(topLeft, topRight, bottomRight, bottomLeft) = corners
|
||||||
|
|
||||||
|
topRight = (int(topRight[0]), int(topRight[1]))
|
||||||
|
bottomRight = (int(bottomRight[0]), int(bottomRight[1]))
|
||||||
|
bottomLeft = (int(bottomLeft[0]), int(bottomLeft[1]))
|
||||||
|
topLeft = (int(topLeft[0]), int(topLeft[1]))
|
||||||
|
cv2.line(frame, topLeft, topRight, (0, 255, 0), 2)
|
||||||
|
cv2.line(frame, topRight, bottomRight, (0, 255, 0), 2)
|
||||||
|
cv2.line(frame, bottomRight, bottomLeft, (0, 255, 0), 2)
|
||||||
|
cv2.line(frame, bottomLeft, topLeft, (0, 255, 0), 2)
|
||||||
|
|
||||||
|
cX = int((topLeft[0] + bottomRight[0]) / 2.0)
|
||||||
|
cY = int((topLeft[1] + bottomRight[1]) / 2.0)
|
||||||
|
cv2.circle(frame, (cX, cY), 4, (0, 0, 255), -1)
|
||||||
|
|
||||||
|
cv2.putText(frame, str(markerID),
|
||||||
|
(topLeft[0], topLeft[1] - 15),
|
||||||
|
cv2.FONT_HERSHEY_SIMPLEX,
|
||||||
|
0.5, (0, 255, 0), 2)
|
||||||
|
|
||||||
|
cv2.imshow("Frame", frame)
|
||||||
|
|
||||||
|
|
||||||
|
cv2.imshow('Frame',frame)
|
||||||
|
if cv2.waitKey(25) & 0XFF == ord('q'):
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
|
||||||
|
cap.release()
|
||||||
|
cv2.destroyAllWindows()
|
||||||
|
|
Loading…
Reference in a new issue