mirror of
https://github.com/wassname/pyrobolearn.git
synced 2026-08-21 11:19:49 +08:00
54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""Run the Webcam interface.
|
|
|
|
Make sure that the webcam is connected before running this code. Note that it can take some time to initialize
|
|
the interface.
|
|
"""
|
|
|
|
import argparse
|
|
import matplotlib.pyplot as plt
|
|
|
|
from pyrobolearn.tools.interfaces.camera.webcam import WebcamInterface
|
|
|
|
|
|
# create parser
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('-t', '--use_thread', help='If we should run the webcam interface in a thread.', type=bool,
|
|
default=False)
|
|
args = parser.parse_args()
|
|
|
|
|
|
# create webcam interface
|
|
if args.use_thread:
|
|
# create and run interface in a thread
|
|
interface = WebcamInterface(use_thread=True, sleep_dt=1./10, verbose=True)
|
|
raw_input('Press key to stop the webcam interface')
|
|
else:
|
|
# create interface
|
|
interface = WebcamInterface()
|
|
|
|
# plotting using matplotlib in interactive mode
|
|
fig = plt.figure()
|
|
plot = None
|
|
plt.ion() # interactive mode on
|
|
|
|
while True:
|
|
# perform a `step` with the interface
|
|
interface.step()
|
|
|
|
# get the frame and plot it with matplotlib
|
|
frame = interface.frame
|
|
if plot is None:
|
|
plot = plt.imshow(frame)
|
|
else:
|
|
plot.set_data(frame)
|
|
plt.pause(0.01)
|
|
|
|
# check if the figure is closed, and if so, get out of the loop
|
|
if not plt.fignum_exists(fig.number):
|
|
break
|
|
|
|
plt.ioff() # interactive mode off
|
|
plt.show()
|