MonoCamera.cpp
Go to the documentation of this file.
2 
3 #include "spdlog/fmt/fmt.h"
4 
5 namespace dai {
6 namespace node {
7 
8 MonoCamera::MonoCamera(const std::shared_ptr<PipelineImpl>& par, int64_t nodeId) : MonoCamera(par, nodeId, std::make_unique<MonoCamera::Properties>()) {}
9 MonoCamera::MonoCamera(const std::shared_ptr<PipelineImpl>& par, int64_t nodeId, std::unique_ptr<Properties> props)
10  : NodeCRTP<Node, MonoCamera, MonoCameraProperties>(par, nodeId, std::move(props)),
11  rawControl(std::make_shared<RawCameraControl>()),
12  initialControl(rawControl) {
15  properties.fps = 30.0;
16 
19 }
20 
23  return properties;
24 }
25 
26 // Set board socket to use
28  properties.boardSocket = boardSocket;
29 }
30 
31 // Get current board socket
33  return properties.boardSocket;
34 }
35 
36 void MonoCamera::setCamera(std::string name) {
37  properties.cameraName = name;
38 }
39 
40 std::string MonoCamera::getCamera() const {
41  return properties.cameraName;
42 }
43 
44 // Set which color camera to use
45 void MonoCamera::setCamId(int64_t camId) {
46  // cast to board socket
47  switch(camId) {
48  case 0:
50  break;
51  case 1:
53  break;
54  case 2:
56  break;
57  case 3:
59  break;
60  default:
61  throw std::invalid_argument(fmt::format("CamId value: {} is invalid.", camId));
62  break;
63  }
64 }
65 
66 // Get which color camera to use
67 int64_t MonoCamera::getCamId() const {
68  return (int64_t)properties.boardSocket;
69 }
70 
71 // Set camera image orientation
73  properties.imageOrientation = imageOrientation;
74 }
75 
76 // Get camera image orientation
78  // TODO: in case of AUTO, see if possible to return actual value determined by device?
80 }
81 
83  properties.resolution = resolution;
84 }
85 
87  return properties.resolution;
88 }
89 
90 void MonoCamera::setFrameEventFilter(const std::vector<dai::FrameEvent>& events) {
91  properties.eventFilter = events;
92 }
93 
94 std::vector<dai::FrameEvent> MonoCamera::getFrameEventFilter() const {
95  return properties.eventFilter;
96 }
97 
98 void MonoCamera::setFps(float fps) {
99  properties.fps = fps;
100 }
101 
102 void MonoCamera::setIsp3aFps(int isp3aFps) {
103  properties.isp3aFps = isp3aFps;
104 }
105 
106 float MonoCamera::getFps() const {
107  // if AUTO
108  if(properties.fps == -1 || properties.fps == 0) {
109  return 30.0f;
110  }
111 
112  // else return fps
113  return properties.fps;
114 }
115 
116 std::tuple<int, int> MonoCamera::getResolutionSize() const {
117  switch(properties.resolution) {
119  return {640, 400};
120  break;
121 
123  return {1280, 720};
124  break;
125 
127  return {1280, 800};
128  break;
129 
131  return {640, 480};
132  break;
133 
135  return {1920, 1200};
136  break;
137  }
138  return {1280, 720};
139 }
140 
142  return std::get<0>(getResolutionSize());
143 }
144 
146  return std::get<1>(getResolutionSize());
147 }
148 
151 }
154 }
155 
157  return properties.numFramesPool;
158 }
161 }
162 
164  properties.rawPacked = packed;
165 }
166 
167 } // namespace node
168 } // namespace dai
dai::NodeCRTP< Node, MonoCamera, MonoCameraProperties >::properties
Properties & properties
Underlying properties.
Definition: Node.hpp:346
dai::node::MonoCamera::setFrameEventFilter
void setFrameEventFilter(const std::vector< dai::FrameEvent > &events)
Definition: MonoCamera.cpp:90
dai::node::MonoCamera::out
Output out
Definition: MonoCamera.hpp:47
dai::CameraBoardSocket::AUTO
@ AUTO
dai::MonoCameraProperties
Definition: MonoCameraProperties.hpp:17
dai::node::MonoCamera::setCamera
void setCamera(std::string name)
Definition: MonoCamera.cpp:36
dai::node::MonoCamera::setFps
void setFps(float fps)
Definition: MonoCamera.cpp:98
dai::MonoCameraProperties::eventFilter
std::vector< dai::FrameEvent > eventFilter
Definition: MonoCameraProperties.hpp:73
dai::node::MonoCamera::getImageOrientation
CameraImageOrientation getImageOrientation() const
Get camera image orientation.
Definition: MonoCamera.cpp:77
dai::node::MonoCamera::setRawNumFramesPool
void setRawNumFramesPool(int num)
Set number of frames in raw pool.
Definition: MonoCamera.cpp:152
dai::RawCameraControl
RawCameraControl structure.
Definition: RawCameraControl.hpp:12
dai::MonoCameraProperties::imageOrientation
CameraImageOrientation imageOrientation
Definition: MonoCameraProperties.hpp:43
dai::node::MonoCamera::getFrameEventFilter
std::vector< dai::FrameEvent > getFrameEventFilter() const
Definition: MonoCamera.cpp:94
dai::MonoCameraProperties::numFramesPoolRaw
int numFramesPoolRaw
Definition: MonoCameraProperties.hpp:69
dai::node::MonoCamera::getResolutionHeight
int getResolutionHeight() const
Get sensor resolution height.
Definition: MonoCamera.cpp:145
dai::node::MonoCamera::setNumFramesPool
void setNumFramesPool(int num)
Set number of frames in main (ISP output) pool.
Definition: MonoCamera.cpp:149
dai::MonoCameraProperties::initialControl
RawCameraControl initialControl
Definition: MonoCameraProperties.hpp:28
dai::MonoCameraProperties::SensorResolution::THE_1200_P
@ THE_1200_P
dai::node::MonoCamera::getResolutionWidth
int getResolutionWidth() const
Get sensor resolution width.
Definition: MonoCamera.cpp:141
dai::CameraImageOrientation
CameraImageOrientation
Definition: shared/depthai-shared/include/depthai-shared/common/CameraImageOrientation.hpp:11
dai::Node::setInputRefs
void setInputRefs(std::initializer_list< Input * > l)
fps
static constexpr int fps
Definition: rgb_depth_aligned.cpp:12
dai::CameraBoardSocket::CAM_A
@ CAM_A
dai::Node
Abstract Node.
Definition: Node.hpp:29
dai::MonoCameraProperties::boardSocket
CameraBoardSocket boardSocket
Definition: MonoCameraProperties.hpp:33
dai::CameraBoardSocket
CameraBoardSocket
Definition: shared/depthai-shared/include/depthai-shared/common/CameraBoardSocket.hpp:9
dai::node::MonoCamera
MonoCamera node. For use with grayscale sensors.
Definition: MonoCamera.hpp:17
dai::node::MonoCamera::MonoCamera
MonoCamera(const std::shared_ptr< PipelineImpl > &par, int64_t nodeId)
Definition: MonoCamera.cpp:8
dai::MonoCameraProperties::fps
float fps
Definition: MonoCameraProperties.hpp:52
dai::node::MonoCamera::getCamera
std::string getCamera() const
Definition: MonoCamera.cpp:40
dai::NodeCRTP
Definition: Node.hpp:342
dai::node::MonoCamera::getNumFramesPool
int getNumFramesPool() const
Get number of frames in main (ISP output) pool.
Definition: MonoCamera.cpp:156
dai::node::MonoCamera::frameEvent
Output frameEvent
Definition: MonoCamera.hpp:64
dai::MonoCameraProperties::SensorResolution
SensorResolution
Definition: MonoCameraProperties.hpp:23
dai::node::MonoCamera::getRawNumFramesPool
int getRawNumFramesPool() const
Get number of frames in raw pool.
Definition: MonoCamera.cpp:159
dai::MonoCameraProperties::SensorResolution::THE_480_P
@ THE_480_P
dai::node::MonoCamera::rawControl
std::shared_ptr< RawCameraControl > rawControl
Definition: MonoCamera.hpp:22
dai::CameraBoardSocket::CAM_B
@ CAM_B
dai::MonoCameraProperties::SensorResolution::THE_400_P
@ THE_400_P
dai::node::MonoCamera::getCamId
int64_t getCamId() const
Definition: MonoCamera.cpp:67
dai::node::MonoCamera::getResolution
Properties::SensorResolution getResolution() const
Get sensor resolution.
Definition: MonoCamera.cpp:86
dai::MonoCameraProperties::SensorResolution::THE_720_P
@ THE_720_P
dai::node::MonoCamera::setRawOutputPacked
void setRawOutputPacked(bool packed)
Definition: MonoCamera.cpp:163
dai::MonoCameraProperties::rawPacked
tl::optional< bool > rawPacked
Definition: MonoCameraProperties.hpp:84
dai::node::MonoCamera::getBoardSocket
CameraBoardSocket getBoardSocket() const
Definition: MonoCamera.cpp:32
dai::node::MonoCamera::setResolution
void setResolution(Properties::SensorResolution resolution)
Set sensor resolution.
Definition: MonoCamera.cpp:82
dai::CameraBoardSocket::CAM_D
@ CAM_D
dai::CameraBoardSocket::CAM_C
@ CAM_C
dai::MonoCameraProperties::isp3aFps
int isp3aFps
Definition: MonoCameraProperties.hpp:61
dai::node::MonoCamera::getResolutionSize
std::tuple< int, int > getResolutionSize() const
Get sensor resolution as size.
Definition: MonoCamera.cpp:116
dai::Properties
Base Properties structure.
Definition: Properties.hpp:8
dai::Node::setOutputRefs
void setOutputRefs(std::initializer_list< Output * > l)
dai::node::MonoCamera::inputControl
Input inputControl
Definition: MonoCamera.hpp:40
dai::node::MonoCamera::setCamId
void setCamId(int64_t id)
Definition: MonoCamera.cpp:45
dai::node::MonoCamera::setImageOrientation
void setImageOrientation(CameraImageOrientation imageOrientation)
Set camera image orientation.
Definition: MonoCamera.cpp:72
std
Definition: Node.hpp:366
dai::node::MonoCamera::setIsp3aFps
void setIsp3aFps(int isp3aFps)
Definition: MonoCamera.cpp:102
MonoCamera.hpp
dai::MonoCameraProperties::resolution
SensorResolution resolution
Definition: MonoCameraProperties.hpp:48
dai::MonoCameraProperties::cameraName
std::string cameraName
Definition: MonoCameraProperties.hpp:38
dai::node::MonoCamera::getProperties
Properties & getProperties()
Definition: MonoCamera.cpp:21
dai::node::MonoCamera::getFps
float getFps() const
Definition: MonoCamera.cpp:106
dai::node::MonoCamera::raw
Output raw
Definition: MonoCamera.hpp:54
dai
Definition: CameraExposureOffset.hpp:6
dai::node::MonoCamera::setBoardSocket
void setBoardSocket(CameraBoardSocket boardSocket)
Definition: MonoCamera.cpp:27
dai::MonoCameraProperties::numFramesPool
int numFramesPool
Definition: MonoCameraProperties.hpp:65
dai::MonoCameraProperties::SensorResolution::THE_800_P
@ THE_800_P


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