DepthAI Tutorials
DepthAI API References

ON THIS PAGE

  • Script camera control
  • Demo
  • Setup
  • Source code

Script camera control

This example shows how to use Script node. It controls the ColorCamera to capture a still image every second.

Demo

.. raw:: html<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; height: auto;"> <iframe src="https://user-images.githubusercontent.com/18037362/126664262-bdd8b567-052c-4985-95df-c4da67f1e3c1.gif" frameborder="0" allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe> </div>

Setup

Please run the install script to download all required dependencies. Please note that this script must be ran from git context, so you have to download the depthai-python repository first and then run the script
Command Line
1git clone https://github.com/luxonis/depthai-python.git
2cd depthai-python/examples
3python3 install_requirements.py
For additional information, please follow the installation guide.

Source code

Python
C++
Python
GitHub
1#!/usr/bin/env python3
2import cv2
3import depthai as dai
4
5# Start defining a pipeline
6pipeline = dai.Pipeline()
7
8# Define a source - color camera
9cam = pipeline.create(dai.node.ColorCamera)
10
11# Script node
12script = pipeline.create(dai.node.Script)
13script.setScript("""
14    import time
15    ctrl = CameraControl()
16    ctrl.setCaptureStill(True)
17    while True:
18        time.sleep(1)
19        node.io['out'].send(ctrl)
20""")
21
22# XLinkOut
23xout = pipeline.create(dai.node.XLinkOut)
24xout.setStreamName('still')
25
26# Connections
27script.outputs['out'].link(cam.inputControl)
28cam.still.link(xout.input)
29
30# Connect to device with pipeline
31with dai.Device(pipeline) as device:
32    while True:
33        img = device.getOutputQueue("still").get()
34        cv2.imshow('still', img.getCvFrame())
35        if cv2.waitKey(1) == ord('q'):
36            break

Need assistance?

Head over to Discussion Forum for technical support or any other questions you might have.