image_manip_tiling.cpp
Go to the documentation of this file.
1 #include <iostream>
2 
3 // Includes common necessary includes for development using depthai library
4 #include "depthai/depthai.hpp"
5 
6 int main() {
7  using namespace std;
8 
9  // Create pipeline
10  dai::Pipeline pipeline;
11 
12  auto camRgb = pipeline.create<dai::node::ColorCamera>();
13  camRgb->setPreviewSize(1000, 500);
14  camRgb->setInterleaved(false);
15  auto maxFrameSize = camRgb->getPreviewHeight() * camRgb->getPreviewHeight() * 3;
16 
17  // In this example we use 2 imageManips for splitting the original 1000x500
18  // preview frame into 2 500x500 frames
19  auto manip1 = pipeline.create<dai::node::ImageManip>();
20  manip1->initialConfig.setCropRect(0, 0, 0.5, 1);
21  // Flip functionality
22  manip1->initialConfig.setHorizontalFlip(true);
23  manip1->setMaxOutputFrameSize(maxFrameSize);
24  camRgb->preview.link(manip1->inputImage);
25 
26  auto manip2 = pipeline.create<dai::node::ImageManip>();
27  manip2->initialConfig.setCropRect(0.5, 0, 1, 1);
28  // Flip functionality
29  manip1->initialConfig.setVerticalFlip(true);
30  manip2->setMaxOutputFrameSize(maxFrameSize);
31  camRgb->preview.link(manip2->inputImage);
32 
33  auto xout1 = pipeline.create<dai::node::XLinkOut>();
34  xout1->setStreamName("out1");
35  manip1->out.link(xout1->input);
36 
37  auto xout2 = pipeline.create<dai::node::XLinkOut>();
38  xout2->setStreamName("out2");
39  manip2->out.link(xout2->input);
40 
41  dai::Device device(pipeline);
42 
43  auto q1 = device.getOutputQueue("out1", 8, false);
44  auto q2 = device.getOutputQueue("out2", 8, false);
45 
46  while(true) {
47  auto in1 = q1->tryGet<dai::ImgFrame>();
48  if(in1) {
49  cv::imshow("Tile 1", in1->getCvFrame());
50  }
51 
52  auto in2 = q2->tryGet<dai::ImgFrame>();
53  if(in2) {
54  cv::imshow("Tile 2", in2->getCvFrame());
55  }
56 
57  int key = cv::waitKey(1);
58  if(key == 'q' || key == 'Q') return 0;
59  }
60  return 0;
61 }
dai::node::XLinkOut
XLinkOut node. Sends messages over XLink.
Definition: XLinkOut.hpp:14
dai::Pipeline
Represents the pipeline, set of nodes and connections between them.
Definition: Pipeline.hpp:100
dai::ImageManipConfig::setCropRect
ImageManipConfig & setCropRect(float xmin, float ymin, float xmax, float ymax)
Definition: ImageManipConfig.cpp:18
dai::node::ColorCamera
ColorCamera node. For use with color sensors.
Definition: ColorCamera.hpp:16
dai::Device::getOutputQueue
std::shared_ptr< DataOutputQueue > getOutputQueue(const std::string &name)
Definition: Device.cpp:86
dai::ImageManipConfig::setHorizontalFlip
ImageManipConfig & setHorizontalFlip(bool flip)
Definition: ImageManipConfig.cpp:205
depthai.hpp
dai::Pipeline::create
std::shared_ptr< N > create()
Definition: Pipeline.hpp:145
dai::ImgFrame
Definition: ImgFrame.hpp:25
dai::node::ImageManip
ImageManip node. Capability to crop, resize, warp, ... incoming image frames.
Definition: ImageManip.hpp:15
dai::Device
Definition: Device.hpp:21
main
int main()
Definition: image_manip_tiling.cpp:6
std
Definition: Node.hpp:366
dai::node::ColorCamera::setPreviewSize
void setPreviewSize(int width, int height)
Set preview output size.
Definition: ColorCamera.cpp:121
dai::node::ImageManip::initialConfig
ImageManipConfig initialConfig
Definition: ImageManip.hpp:34
dai::ImageManipConfig::setVerticalFlip
void setVerticalFlip(bool flip)
Definition: ImageManipConfig.cpp:214
dai::node::XLinkOut::setStreamName
void setStreamName(const std::string &name)
Definition: XLinkOut.cpp:13


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19