Script camera control¶
This example shows how to use Script node. It controls the ColorCamera to capture a still image every second.
Demo¶
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
git clone https://github.com/luxonis/depthai-python.git
cd depthai-python/examples
python3 install_requirements.py
For additional information, please follow installation guide
Source code¶
Also available on GitHub
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python3 import cv2 import depthai as dai # Start defining a pipeline pipeline = dai.Pipeline() # Define a source - color camera cam = pipeline.create(dai.node.ColorCamera) # Script node script = pipeline.create(dai.node.Script) script.setScript(""" import time ctrl = CameraControl() ctrl.setCaptureStill(True) while True: time.sleep(1) node.io['out'].send(ctrl) """) # XLinkOut xout = pipeline.create(dai.node.XLinkOut) xout.setStreamName('still') # Connections script.outputs['out'].link(cam.inputControl) cam.still.link(xout.input) # Connect to device with pipeline with dai.Device(pipeline) as device: while True: img = device.getOutputQueue("still").get() cv2.imshow('still', img.getCvFrame()) if cv2.waitKey(1) == ord('q'): break |
Also available on GitHub
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <iostream> // Includes common necessary includes for development using depthai library #include "depthai/depthai.hpp" int main() { using namespace std; // Start defining a pipeline dai::Pipeline pipeline; // Define a source - color camera auto colorCam = pipeline.create<dai::node::ColorCamera>(); // Script node auto script = pipeline.create<dai::node::Script>(); script->setScript(R"( import time ctrl = CameraControl() ctrl.setCaptureStill(True) while True: time.sleep(1) node.io['out'].send(ctrl) )"); // XLinkOut auto xout = pipeline.create<dai::node::XLinkOut>(); xout->setStreamName("still"); // Connections script->outputs["out"].link(colorCam->inputControl); colorCam->still.link(xout->input); // Connect to device with pipeline dai::Device device(pipeline); while(true) { auto img = device.getOutputQueue("still")->get<dai::ImgFrame>(); cv::imshow("still", img->getCvFrame()); if(cv::waitKey(1) == 'q') { break; } } return 0; } |
Got questions?
We’re always happy to help with code or other questions you might have.