DepthAI v2 has been superseded by DepthAI v3. You are viewing legacy documentation.
此页面由 AI 自动翻译。查看英文原版
DepthAI 教程
DepthAI API 参考

本页目录

  • 演示
  • 设置
  • 源代码
  • 管道

Casting NN Blur

此示例演示了如何使用神经网络和 Cast 节点应用模糊效果。Cast 节点的输出可用于第二阶段神经网络或进一步处理。

演示

Blur Demo

设置

请运行 安装脚本 以下载所有必需的依赖项。请注意,此脚本必须在 git 上下文中运行,因此您必须先下载 depthai-python 存储库,然后运行脚本
Command Line
1git clone https://github.com/luxonis/depthai-python.git
2cd depthai-python/examples
3python3 install_requirements.py
有关更多信息,请遵循 安装指南

源代码

Python

Python
GitHub
1#!/usr/bin/env python3
2
3import depthai as dai
4import cv2
5from pathlib import Path
6
7SHAPE = 300
8
9p = dai.Pipeline()
10
11camRgb = p.create(dai.node.ColorCamera)
12nn = p.create(dai.node.NeuralNetwork)
13rgbOut = p.create(dai.node.XLinkOut)
14cast = p.create(dai.node.Cast)
15castXout = p.create(dai.node.XLinkOut)
16
17camRgb.setPreviewSize(SHAPE, SHAPE)
18camRgb.setInterleaved(False)
19
20nnBlobPath = (Path(__file__).parent / Path('../models/blur_simplified_openvino_2021.4_6shave.blob')).resolve().absolute()
21
22nn.setBlobPath(nnBlobPath)
23
24rgbOut.setStreamName("rgb")
25
26castXout.setStreamName("cast")
27
28cast.setOutputFrameType(dai.RawImgFrame.Type.BGR888p)
29
30# Linking
31camRgb.preview.link(nn.input)
32camRgb.preview.link(rgbOut.input)
33nn.out.link(cast.input)
34cast.output.link(castXout.input)
35
36with dai.Device(p) as device:
37    qCam = device.getOutputQueue(name="rgb", maxSize=4, blocking=False)
38    qCast = device.getOutputQueue(name="cast", maxSize=4, blocking=False)
39
40
41    while True:
42        inCast = qCast.get()
43        assert isinstance(inCast, dai.ImgFrame)
44        inRgb = qCam.get()
45        assert isinstance(inRgb, dai.ImgFrame)
46        cv2.imshow("Blur", inCast.getCvFrame())
47        cv2.imshow("Original", inRgb.getCvFrame())
48
49
50        if cv2.waitKey(1) == ord('q'):
51            break

C++

1#include <depthai/depthai.hpp>
2#include <opencv2/opencv.hpp>
3
4constexpr int SHAPE = 300;
5
6int main() {
7    dai::Pipeline p;
8
9    auto camRgb = p.create<dai::node::ColorCamera>();
10    auto nn = p.create<dai::node::NeuralNetwork>();
11    auto rgbOut = p.create<dai::node::XLinkOut>();
12    auto cast = p.create<dai::node::Cast>();
13    auto castXout = p.create<dai::node::XLinkOut>();
14
15    camRgb->setPreviewSize(SHAPE, SHAPE);
16    camRgb->setInterleaved(false);
17
18    nn->setBlobPath(BLOB_PATH);
19
20    rgbOut->setStreamName("rgb");
21    castXout->setStreamName("cast");
22
23    cast->setOutputFrameType(dai::ImgFrame::Type::BGR888p);
24
25    // Linking
26    camRgb->preview.link(nn->input);
27    camRgb->preview.link(rgbOut->input);
28    nn->out.link(cast->input);
29    cast->output.link(castXout->input);
30
31    dai::Device device(p);
32    auto qCam = device.getOutputQueue("rgb", 4, false);
33    auto qCast = device.getOutputQueue("cast", 4, false);
34
35    while(true) {
36        auto inCast = qCast->get<dai::ImgFrame>();
37        auto inRgb = qCam->get<dai::ImgFrame>();
38
39        if(inCast && inRgb) {
40            cv::imshow("Blur", inCast->getCvFrame());
41            cv::imshow("Original", inRgb->getCvFrame());
42        }
43
44        if(cv::waitKey(1) == 'q') {
45            break;
46        }
47    }
48
49    return 0;
50}

管道

需要帮助?

请前往 Discussion Forum 获取技术支持或提出您可能有的任何其他问题。