Skip to content

Commit 20ac5f5

Browse files
committed
Merge branch 'release_2.17.3' into main
2 parents 10e9be0 + cc6b377 commit 20ac5f5

14 files changed

+133
-38
lines changed

examples/calibration/calibration_dump.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,6 @@
1919
print(f'Factory calibration: {json.dumps(device.readFactoryCalibration().eepromToJson(), indent=2)}')
2020
except Exception as ex:
2121
print(f'No factory calibration: {ex}')
22+
23+
print(f'User calibration raw: {json.dumps(device.readCalibrationRaw())}')
24+
print(f'Factory calibration raw: {json.dumps(device.readFactoryCalibrationRaw())}')

examples/calibration/calibration_flash.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
args = parser.parse_args()
1414

1515
# Connect device
16-
with dai.Device() as device:
16+
with dai.Device(dai.OpenVINO.VERSION_2021_4, dai.UsbSpeed.HIGH) as device:
1717

1818
deviceCalib = device.readCalibration()
1919
deviceCalib.eepromToJsonFile(calibBackUpFile)

examples/calibration/calibration_reader.py

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,41 @@
3434
print(f'RGB FOV {calibData.getFov(dai.CameraBoardSocket.RGB)}')
3535

3636
else:
37+
M_rgb, width, height = calibData.getDefaultIntrinsics(dai.CameraBoardSocket.RGB)
38+
print("RGB Camera Default intrinsics...")
39+
print(M_rgb)
40+
print(width)
41+
print(height)
42+
43+
M_rgb = np.array(calibData.getCameraIntrinsics(dai.CameraBoardSocket.RGB, 3840, 2160))
44+
print("RGB Camera resized intrinsics... 3840 x 2160 ")
45+
print(M_rgb)
46+
47+
48+
M_rgb = np.array(calibData.getCameraIntrinsics(dai.CameraBoardSocket.RGB, 4056, 3040 ))
49+
print("RGB Camera resized intrinsics... 4056 x 3040 ")
50+
print(M_rgb)
51+
52+
53+
M_left, width, height = calibData.getDefaultIntrinsics(dai.CameraBoardSocket.LEFT)
54+
print("LEFT Camera Default intrinsics...")
55+
print(M_left)
56+
print(width)
57+
print(height)
58+
3759
M_left = np.array(calibData.getCameraIntrinsics(dai.CameraBoardSocket.LEFT, 1280, 720))
38-
print("LEFT Camera resized intrinsics...")
60+
print("LEFT Camera resized intrinsics... 1280 x 720")
3961
print(M_left)
4062

41-
D_left = np.array(calibData.getDistortionCoefficients(dai.CameraBoardSocket.LEFT))
42-
print("LEFT Distortion Coefficients...")
43-
[print(name+": "+value) for (name, value) in zip(["k1","k2","p1","p2","k3","k4","k5","k6","s1","s2","s3","s4","τx","τy"],[str(data) for data in D_left])]
4463

4564
M_right = np.array(calibData.getCameraIntrinsics(dai.CameraBoardSocket.RIGHT, 1280, 720))
46-
print("RIGHT Camera resized intrinsics...")
65+
print("RIGHT Camera resized intrinsics... 1280 x 720")
4766
print(M_right)
4867

68+
D_left = np.array(calibData.getDistortionCoefficients(dai.CameraBoardSocket.LEFT))
69+
print("LEFT Distortion Coefficients...")
70+
[print(name+": "+value) for (name, value) in zip(["k1","k2","p1","p2","k3","k4","k5","k6","s1","s2","s3","s4","τx","τy"],[str(data) for data in D_left])]
71+
4972
D_right = np.array(calibData.getDistortionCoefficients(dai.CameraBoardSocket.RIGHT))
5073
print("RIGHT Distortion Coefficients...")
5174
[print(name+": "+value) for (name, value) in zip(["k1","k2","p1","p2","k3","k4","k5","k6","s1","s2","s3","s4","τx","τy"],[str(data) for data in D_right])]

src/CalibrationHandlerBindings.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ void CalibrationHandlerBindings::bind(pybind11::module& m, void* pCallstack){
3333

3434
.def("getEepromData", &CalibrationHandler::getEepromData, DOC(dai, CalibrationHandler, getEepromData))
3535

36-
.def("getCameraIntrinsics", py::overload_cast<CameraBoardSocket, int, int, Point2f, Point2f>(&CalibrationHandler::getCameraIntrinsics), py::arg("cameraId"), py::arg("resizeWidth") = -1, py::arg("resizeHeight") = -1, py::arg("topLeftPixelId") = Point2f(), py::arg("bottomRightPixelId") = Point2f(), DOC(dai, CalibrationHandler, getCameraIntrinsics))
37-
.def("getCameraIntrinsics", py::overload_cast<CameraBoardSocket, Size2f, Point2f, Point2f>(&CalibrationHandler::getCameraIntrinsics), py::arg("cameraId"), py::arg("destShape"), py::arg("topLeftPixelId") = Point2f(), py::arg("bottomRightPixelId") = Point2f(), DOC(dai, CalibrationHandler, getCameraIntrinsics, 2))
38-
.def("getCameraIntrinsics", py::overload_cast<CameraBoardSocket, std::tuple<int, int>, Point2f, Point2f>(&CalibrationHandler::getCameraIntrinsics), py::arg("cameraId"), py::arg("destShape"), py::arg("topLeftPixelId") = Point2f(), py::arg("bottomRightPixelId") = Point2f(), DOC(dai, CalibrationHandler, getCameraIntrinsics, 3))
36+
.def("getCameraIntrinsics", py::overload_cast<CameraBoardSocket, int, int, Point2f, Point2f, bool>(&CalibrationHandler::getCameraIntrinsics), py::arg("cameraId"), py::arg("resizeWidth") = -1, py::arg("resizeHeight") = -1, py::arg("topLeftPixelId") = Point2f(), py::arg("bottomRightPixelId") = Point2f(), py::arg("keepAspectRatio") = true, DOC(dai, CalibrationHandler, getCameraIntrinsics))
37+
.def("getCameraIntrinsics", py::overload_cast<CameraBoardSocket, Size2f, Point2f, Point2f, bool>(&CalibrationHandler::getCameraIntrinsics), py::arg("cameraId"), py::arg("destShape"), py::arg("topLeftPixelId") = Point2f(), py::arg("bottomRightPixelId") = Point2f(), py::arg("keepAspectRatio") = true, DOC(dai, CalibrationHandler, getCameraIntrinsics, 2))
38+
.def("getCameraIntrinsics", py::overload_cast<CameraBoardSocket, std::tuple<int, int>, Point2f, Point2f, bool>(&CalibrationHandler::getCameraIntrinsics), py::arg("cameraId"), py::arg("destShape"), py::arg("topLeftPixelId") = Point2f(), py::arg("bottomRightPixelId") = Point2f(), py::arg("keepAspectRatio") = true, DOC(dai, CalibrationHandler, getCameraIntrinsics, 3))
3939

4040
.def("getDefaultIntrinsics", &CalibrationHandler::getDefaultIntrinsics, py::arg("cameraId"), DOC(dai, CalibrationHandler, getDefaultIntrinsics))
4141
.def("getDistortionCoefficients", &CalibrationHandler::getDistortionCoefficients, py::arg("cameraId"), DOC(dai, CalibrationHandler, getDistortionCoefficients))

src/DatatypeBindings.cpp

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "DatatypeBindings.hpp"
22

33
#include "pipeline/CommonBindings.hpp"
4+
#include "depthai-shared/datatype/DatatypeEnum.hpp"
45

56
void bind_adatatype(pybind11::module& m, void* pCallstack);
67
void bind_apriltagconfig(pybind11::module& m, void* pCallstack);
@@ -23,6 +24,9 @@ void bind_trackedfeatures(pybind11::module& m, void* pCallstack);
2324
void bind_tracklets(pybind11::module& m, void* pCallstack);
2425

2526
void DatatypeBindings::addToCallstack(std::deque<StackFunction>& callstack) {
27+
// Bind common datatypebindings
28+
callstack.push_front(DatatypeBindings::bind);
29+
2630
// Bind all datatypes (order matters)
2731
callstack.push_front(bind_adatatype);
2832
callstack.push_front(bind_buffer);
@@ -44,3 +48,46 @@ void DatatypeBindings::addToCallstack(std::deque<StackFunction>& callstack) {
4448
callstack.push_front(bind_trackedfeatures);
4549
callstack.push_front(bind_tracklets);
4650
}
51+
52+
void DatatypeBindings::bind(pybind11::module& m, void* pCallstack){
53+
using namespace dai;
54+
55+
py::enum_<DatatypeEnum> datatypeEnum(m, "DatatypeEnum", DOC(dai, DatatypeEnum));
56+
57+
///////////////////////////////////////////////////////////////////////
58+
///////////////////////////////////////////////////////////////////////
59+
///////////////////////////////////////////////////////////////////////
60+
// Call the rest of the type defines, then perform the actual bindings
61+
Callstack* callstack = (Callstack*) pCallstack;
62+
auto cb = callstack->top();
63+
callstack->pop();
64+
cb(m, pCallstack);
65+
// Actual bindings
66+
///////////////////////////////////////////////////////////////////////
67+
///////////////////////////////////////////////////////////////////////
68+
///////////////////////////////////////////////////////////////////////
69+
70+
m.def("isDatatypeSubclassOf", &isDatatypeSubclassOf);
71+
72+
datatypeEnum
73+
.value("Buffer", DatatypeEnum::Buffer)
74+
.value("ImgFrame", DatatypeEnum::ImgFrame)
75+
.value("NNData", DatatypeEnum::NNData)
76+
.value("ImageManipConfig", DatatypeEnum::ImageManipConfig)
77+
.value("CameraControl", DatatypeEnum::CameraControl)
78+
.value("ImgDetections", DatatypeEnum::ImgDetections)
79+
.value("SpatialImgDetections", DatatypeEnum::SpatialImgDetections)
80+
.value("SystemInformation", DatatypeEnum::SystemInformation)
81+
.value("SpatialLocationCalculatorConfig", DatatypeEnum::SpatialLocationCalculatorConfig)
82+
.value("SpatialLocationCalculatorData", DatatypeEnum::SpatialLocationCalculatorData)
83+
.value("EdgeDetectorConfig", DatatypeEnum::EdgeDetectorConfig)
84+
.value("AprilTagConfig", DatatypeEnum::AprilTagConfig)
85+
.value("AprilTags", DatatypeEnum::AprilTags)
86+
.value("Tracklets", DatatypeEnum::Tracklets)
87+
.value("IMUData", DatatypeEnum::IMUData)
88+
.value("StereoDepthConfig", DatatypeEnum::StereoDepthConfig)
89+
.value("FeatureTrackerConfig", DatatypeEnum::FeatureTrackerConfig)
90+
.value("TrackedFeatures", DatatypeEnum::TrackedFeatures)
91+
;
92+
93+
}

src/DatatypeBindings.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@
55

66
struct DatatypeBindings {
77
static void addToCallstack(std::deque<StackFunction>& callstack);
8+
private:
9+
static void bind(pybind11::module& m, void* pCallstack);
810
};

src/pipeline/datatype/AprilTagsBindings.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ void bind_apriltags(pybind11::module& m, void* pCallstack){
4848
aprilTags
4949
.def(py::init<>())
5050
.def_property("aprilTags", [](AprilTags& det) { return &det.aprilTags; }, [](AprilTags& det, std::vector<AprilTag> val) { det.aprilTags = val; })
51+
.def("getTimestamp", &AprilTags::getTimestamp, DOC(dai, AprilTags, getTimestamp))
52+
.def("getTimestampDevice", &AprilTags::getTimestampDevice, DOC(dai, AprilTags, getTimestampDevice))
53+
.def("getSequenceNum", &AprilTags::getSequenceNum, DOC(dai, AprilTags, getSequenceNum))
54+
.def("setTimestamp", &AprilTags::setTimestamp, DOC(dai, AprilTags, setTimestamp))
55+
.def("setTimestampDevice", &AprilTags::setTimestampDevice, DOC(dai, AprilTags, setTimestampDevice))
56+
.def("setSequenceNum", &AprilTags::setSequenceNum, DOC(dai, AprilTags, setSequenceNum))
5157
;
5258

5359
}

src/pipeline/datatype/SpatialLocationCalculatorDataBindings.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,12 @@ void bind_spatiallocationcalculatordata(pybind11::module& m, void* pCallstack){
4848
.def(py::init<>())
4949
.def("getSpatialLocations", &SpatialLocationCalculatorData::getSpatialLocations, DOC(dai, SpatialLocationCalculatorData, getSpatialLocations))
5050
.def_property("spatialLocations", [](SpatialLocationCalculatorData& loc) { return &loc.spatialLocations; }, [](SpatialLocationCalculatorData& loc, std::vector<SpatialLocations> val) { loc.spatialLocations = val; }, DOC(dai, SpatialLocationCalculatorData, spatialLocations))
51-
51+
.def("getTimestamp", &SpatialLocationCalculatorData::getTimestamp, DOC(dai, SpatialLocationCalculatorData, getTimestamp))
52+
.def("getTimestampDevice", &SpatialLocationCalculatorData::getTimestampDevice, DOC(dai, SpatialLocationCalculatorData, getTimestampDevice))
53+
.def("getSequenceNum", &SpatialLocationCalculatorData::getSequenceNum, DOC(dai, SpatialLocationCalculatorData, getSequenceNum))
54+
.def("setTimestamp", &SpatialLocationCalculatorData::setTimestamp, DOC(dai, SpatialLocationCalculatorData, setTimestamp))
55+
.def("setTimestampDevice", &SpatialLocationCalculatorData::setTimestampDevice, DOC(dai, SpatialLocationCalculatorData, setTimestampDevice))
56+
.def("setSequenceNum", &SpatialLocationCalculatorData::setSequenceNum, DOC(dai, SpatialLocationCalculatorData, setSequenceNum))
5257
;
5358

5459

src/pipeline/datatype/TrackedFeaturesBindings.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ void bind_trackedfeatures(pybind11::module& m, void* pCallstack){
5353
trackedFeatures
5454
.def(py::init<>())
5555
.def_property("trackedFeatures", [](TrackedFeatures& feat) { return &feat.trackedFeatures; }, [](TrackedFeatures& feat, std::vector<TrackedFeature> val) { feat.trackedFeatures = val; }, DOC(dai, TrackedFeatures, trackedFeatures))
56+
.def("getTimestamp", &TrackedFeatures::getTimestamp, DOC(dai, TrackedFeatures, getTimestamp))
57+
.def("getTimestampDevice", &TrackedFeatures::getTimestampDevice, DOC(dai, TrackedFeatures, getTimestampDevice))
58+
.def("getSequenceNum", &TrackedFeatures::getSequenceNum, DOC(dai, TrackedFeatures, getSequenceNum))
59+
.def("setTimestamp", &TrackedFeatures::setTimestamp, DOC(dai, TrackedFeatures, setTimestamp))
60+
.def("setTimestampDevice", &TrackedFeatures::setTimestampDevice, DOC(dai, TrackedFeatures, setTimestampDevice))
61+
.def("setSequenceNum", &TrackedFeatures::setSequenceNum, DOC(dai, TrackedFeatures, setSequenceNum))
5662
;
5763

5864
}

0 commit comments

Comments
 (0)