Skip to content

Commit 3f9adca

Browse files
JujuDelJulien Delclos
andauthored
r5.0.6 (#720)
Co-authored-by: Julien Delclos <julien.delclos@stereolabs.com>
1 parent 43e634d commit 3f9adca

File tree

10 files changed

+104
-86
lines changed

10 files changed

+104
-86
lines changed

camera control/cpp/src/main.cpp

Lines changed: 90 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ using namespace std;
3939
using namespace sl;
4040

4141
// Sample functions
42-
void updateCameraSettings(char key, sl::Camera &zed);
42+
void updateCameraSettings(char key, sl::Camera &zed, InitParameters &init_params);
4343
void switchCameraSettings();
4444
void printHelp();
4545
void print(string msg_prefix, ERROR_CODE err_code = ERROR_CODE::SUCCESS, string msg_suffix = "");
@@ -58,26 +58,26 @@ cv::Point origin_rect;
5858

5959
static void onMouse(int event, int x, int y, int, void*) {
6060
switch (event) {
61-
case cv::EVENT_LBUTTONDOWN:
62-
{
63-
origin_rect = cv::Point(x, y);
64-
selectInProgress = true;
65-
break;
66-
}
61+
case cv::EVENT_LBUTTONDOWN:
62+
{
63+
origin_rect = cv::Point(x, y);
64+
selectInProgress = true;
65+
break;
66+
}
6767

68-
case cv::EVENT_LBUTTONUP:
69-
{
70-
selectInProgress = false;
71-
break;
72-
}
68+
case cv::EVENT_LBUTTONUP:
69+
{
70+
selectInProgress = false;
71+
break;
72+
}
7373

74-
case cv::EVENT_RBUTTONDOWN:
75-
{
76-
//Reset selection
77-
selectInProgress = false;
78-
selection_rect = sl::Rect(0, 0, 0, 0);
79-
break;
80-
}
74+
case cv::EVENT_RBUTTONDOWN:
75+
{
76+
//Reset selection
77+
selectInProgress = false;
78+
selection_rect = sl::Rect(0, 0, 0, 0);
79+
break;
80+
}
8181
}
8282

8383
if (selectInProgress) {
@@ -88,6 +88,9 @@ static void onMouse(int event, int x, int y, int, void*) {
8888
}
8989
}
9090

91+
92+
bool must_grab = true;
93+
9194
int main(int argc, char **argv) {
9295

9396
// Create a ZED Camera object
@@ -97,7 +100,7 @@ int main(int argc, char **argv) {
97100
init_parameters.sdk_verbose = true;
98101
init_parameters.camera_resolution = sl::RESOLUTION::AUTO;
99102
init_parameters.depth_mode = sl::DEPTH_MODE::NONE; // no depth computation required here
100-
init_parameters.async_grab_camera_recovery = true;
103+
init_parameters.async_grab_camera_recovery = false;
101104
init_parameters.enable_image_validity_check = 1;
102105
parseArgs(argc, argv, init_parameters);
103106

@@ -135,6 +138,9 @@ int main(int argc, char **argv) {
135138
char key = ' ';
136139
while (key != 'q') {
137140
// Check that a new image is successfully acquired
141+
if (!must_grab)
142+
continue;
143+
138144
returned_state = zed.grab();
139145

140146
if (returned_state == ERROR_CODE::CORRUPTED_FRAME) {
@@ -146,10 +152,8 @@ int main(int argc, char **argv) {
146152
if (health.low_depth_reliability) std::cout << "Low depth reliability - ";
147153
if (health.low_motion_sensors_reliability) std::cout << "Low motion sensors reliability - ";
148154
std::cout << std::endl;
149-
} else if (returned_state != ERROR_CODE::SUCCESS)
150-
std::cout << "returned_state " << returned_state << std::endl;
151-
int current_value = 10;
152-
zed.getCameraSettings(VIDEO_SETTINGS::EXPOSURE, current_value);
155+
}
156+
153157
if (returned_state <= ERROR_CODE::SUCCESS) {
154158
// Retrieve left image
155159
zed.retrieveImage(zed_image, VIEW::SIDE_BY_SIDE);
@@ -171,7 +175,7 @@ int main(int argc, char **argv) {
171175

172176
key = cv::waitKey(10);
173177
// Change camera settings with keyboard
174-
updateCameraSettings(key, zed);
178+
updateCameraSettings(key, zed,init_parameters);
175179
}
176180

177181
// Exit
@@ -182,61 +186,71 @@ int main(int argc, char **argv) {
182186
/**
183187
This function updates camera settings
184188
**/
185-
void updateCameraSettings(char key, sl::Camera &zed) {
189+
void updateCameraSettings(char key, sl::Camera &zed, sl::InitParameters& init_params) {
186190
int current_value;
187191

188192
// Keyboard shortcuts
189193
switch (key) {
190194

191-
// Switch to the next camera parameter
192-
case 's':
193-
switchCameraSettings();
194-
zed.getCameraSettings(camera_settings_, current_value);
195-
std::cout << " Current Value : " << current_value << std::endl;
196-
break;
197-
198-
// Increase camera settings value ('+' key)
199-
case '+':
200-
zed.getCameraSettings(camera_settings_, current_value);
201-
zed.setCameraSettings(camera_settings_, current_value + step_camera_setting);
202-
zed.getCameraSettings(camera_settings_, current_value);
203-
print(str_camera_settings + ": " + std::to_string(current_value));
204-
break;
205-
206-
// Decrease camera settings value ('-' key)
207-
case '-':
208-
zed.getCameraSettings(camera_settings_, current_value);
209-
current_value = current_value > 0 ? current_value - step_camera_setting : 0; // take care of the 'default' value parameter: VIDEO_SETTINGS_VALUE_AUTO
210-
zed.setCameraSettings(camera_settings_, current_value);
211-
zed.getCameraSettings(camera_settings_, current_value);
212-
print(str_camera_settings + ": " + std::to_string(current_value));
213-
break;
214-
215-
//switch LED On :
216-
case 'l':
217-
led_on = !led_on;
218-
zed.setCameraSettings(sl::VIDEO_SETTINGS::LED_STATUS, led_on);
219-
break;
220-
221-
// Reset to default parameters
222-
case 'r':
223-
print("Reset all settings to default\n");
224-
for (int s = (int) VIDEO_SETTINGS::BRIGHTNESS; s <= (int) VIDEO_SETTINGS::WHITEBALANCE_TEMPERATURE; s++)
225-
zed.setCameraSettings(static_cast<VIDEO_SETTINGS> (s), sl::VIDEO_SETTINGS_VALUE_AUTO);
226-
break;
227-
228-
case 'a':
229-
{
230-
cout << "[Sample] set AEC_AGC_ROI on target [" << selection_rect.x << "," << selection_rect.y << "," << selection_rect.width << "," << selection_rect.height << "]\n";
231-
zed.setCameraSettings(VIDEO_SETTINGS::AEC_AGC_ROI, selection_rect, sl::SIDE::BOTH);
232-
}
233-
break;
234-
235-
case 'f':
236-
print("reset AEC_AGC_ROI to full res");
237-
zed.setCameraSettings(VIDEO_SETTINGS::AEC_AGC_ROI, selection_rect, sl::SIDE::BOTH, true);
238-
break;
239-
195+
// Switch to the next camera parameter
196+
case 's':
197+
switchCameraSettings();
198+
zed.getCameraSettings(camera_settings_, current_value);
199+
std::cout << " Current Value : " << current_value << std::endl;
200+
break;
201+
202+
// Increase camera settings value ('+' key)
203+
case '+':
204+
zed.getCameraSettings(camera_settings_, current_value);
205+
zed.setCameraSettings(camera_settings_, current_value + step_camera_setting);
206+
zed.getCameraSettings(camera_settings_, current_value);
207+
print(str_camera_settings + ": " + std::to_string(current_value));
208+
break;
209+
210+
// Decrease camera settings value ('-' key)
211+
case '-':
212+
zed.getCameraSettings(camera_settings_, current_value);
213+
current_value = current_value > 0 ? current_value - step_camera_setting : 0; // take care of the 'default' value parameter: VIDEO_SETTINGS_VALUE_AUTO
214+
zed.setCameraSettings(camera_settings_, current_value);
215+
zed.getCameraSettings(camera_settings_, current_value);
216+
print(str_camera_settings + ": " + std::to_string(current_value));
217+
break;
218+
219+
//switch LED On :
220+
case 'l':
221+
led_on = !led_on;
222+
zed.setCameraSettings(sl::VIDEO_SETTINGS::LED_STATUS, led_on);
223+
break;
224+
225+
// Reset to default parameters
226+
case 'r':
227+
print("Reset all settings to default\n");
228+
for (int s = (int) VIDEO_SETTINGS::BRIGHTNESS; s <= (int) VIDEO_SETTINGS::WHITEBALANCE_TEMPERATURE; s++)
229+
zed.setCameraSettings(static_cast<VIDEO_SETTINGS> (s), sl::VIDEO_SETTINGS_VALUE_AUTO);
230+
break;
231+
232+
case 'a':
233+
{
234+
cout << "[Sample] set AEC_AGC_ROI on target [" << selection_rect.x << "," << selection_rect.y << "," << selection_rect.width << "," << selection_rect.height << "]\n";
235+
zed.setCameraSettings(VIDEO_SETTINGS::AEC_AGC_ROI, selection_rect, sl::SIDE::BOTH);
236+
}
237+
break;
238+
239+
case 'f':
240+
print("reset AEC_AGC_ROI to full res");
241+
zed.setCameraSettings(VIDEO_SETTINGS::AEC_AGC_ROI, selection_rect, sl::SIDE::BOTH, true);
242+
break;
243+
244+
case 'b' :
245+
must_grab =false;
246+
sl::sleep_ms(100); /// Wait 100ms to make sure no grab is performed
247+
zed.close(); /// Make sure that the camera is closed before rebooting it.
248+
sl::Camera::reboot(0); /// Reboot the first camera found. This is similar to unplug/plug the camera
249+
sl::sleep_ms(3000); /// Sleep for 3 scs for making sure the camera is available
250+
std::cout<<" Rebooting camera"<<std::endl;
251+
sl::ERROR_CODE err_ = zed.open(init_params);
252+
must_grab = true;
253+
break;
240254
}
241255
}
242256

@@ -274,6 +288,7 @@ void printHelp() {
274288
cout << "* Toggle camera LED: 'l' (lower L)\n";
275289
cout << "* Reset all parameters: 'r'\n";
276290
cout << "* Reset exposure ROI to full image 'f'\n";
291+
cout << "* Reboot camera while in use: 'b'\n";
277292
cout << "* Use mouse to select an image area to apply exposure (press 'a')\n";
278293
cout << "* Exit : 'q'\n\n";
279294
}

camera streaming/single_sender/python/streaming_sender.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
########################################################################
2020

2121
"""
22-
Open the camera and start streaming images using H264 codec
22+
Open the camera and start streaming images using H265 codec
2323
"""
2424
import sys
2525
import pyzed.sl as sl
@@ -65,7 +65,7 @@ def main(opt):
6565
runtime = sl.RuntimeParameters()
6666
stream_params = sl.StreamingParameters()
6767
print("Streaming on port ",stream_params.port) #Get the port used to stream
68-
stream_params.codec = sl.STREAMING_CODEC.H264
68+
stream_params.codec = sl.STREAMING_CODEC.H265
6969
stream_params.bitrate = 4000
7070
status_streaming = cam.enable_streaming(stream_params) #Enable streaming
7171
if status_streaming != sl.ERROR_CODE.SUCCESS:

object detection/birds eye viewer/cpp/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ int main(int argc, char **argv) {
6262
init_parameters.depth_mode = isJetson ? DEPTH_MODE::NEURAL_LIGHT : DEPTH_MODE::NEURAL;
6363
init_parameters.depth_maximum_distance = 10.0f * 1000.0f;
6464
init_parameters.coordinate_system = COORDINATE_SYSTEM::RIGHT_HANDED_Y_UP; // OpenGL's coordinate system is right_handed
65-
init_parameters.sdk_verbose = 666;
65+
init_parameters.sdk_verbose = 1;
6666

6767
parseArgs(argc, argv, init_parameters);
6868

recording/recording/external_data/cpp/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ int main(int argc, char **argv) {
6262
// Enable recording with the filename specified in argument
6363
RecordingParameters recording_parameters;
6464
recording_parameters.video_filename.set(argv[1]);
65-
recording_parameters.compression_mode = SVO_COMPRESSION_MODE::H264;
65+
recording_parameters.compression_mode = SVO_COMPRESSION_MODE::H265;
6666
returned_state = zed.enableRecording(recording_parameters);
6767
if (returned_state != ERROR_CODE::SUCCESS) {
6868
print("Recording ZED : ", returned_state);

recording/recording/external_data/python/svo_recording.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def main(opt):
4444
print("Camera Open", status, "Exit program.")
4545
exit(1)
4646

47-
recording_param = sl.RecordingParameters(opt.output_svo_file, sl.SVO_COMPRESSION_MODE.H264) # Enable recording with the filename specified in argument
47+
recording_param = sl.RecordingParameters(opt.output_svo_file, sl.SVO_COMPRESSION_MODE.H265) # Enable recording with the filename specified in argument
4848
err = cam.enable_recording(recording_param)
4949
if err != sl.ERROR_CODE.SUCCESS:
5050
print("Recording ZED : ", err)

recording/recording/multi camera/cpp/src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ bool openCamera(CameraType& zed, const int sn, const int camera_fps = 30) {
9999
std::string svo_filename = std::string(sl::toString(zed.getCameraInformation().camera_model)) + "_SN" + std::to_string(sn) + ".svo2";;
100100
svo_filename.erase(std::remove(svo_filename.begin(), svo_filename.end(), ' '), svo_filename.end()); // Remove spaces from the filename
101101
recording_params.video_filename.set(svo_filename.c_str());
102-
recording_params.compression_mode = sl::SVO_COMPRESSION_MODE::H264;
102+
recording_params.compression_mode = sl::SVO_COMPRESSION_MODE::H265;
103103
const sl::ERROR_CODE recording_err = zed.enableRecording(recording_params);
104104
if (recording_err <= sl::ERROR_CODE::SUCCESS) {
105105
std::cout << toString(zed.getCameraInformation().camera_model) << "_SN" << sn << " Enabled recording" << std::endl;

recording/recording/multi camera/python/recording_multi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def open_camera(zed, sn, camera_fps=30):
8484

8585
# Enable Recording
8686
output_svo_file = f"{zed.get_camera_information().camera_model}_SN{sn}.svo2"
87-
recording_param = sl.RecordingParameters(output_svo_file.replace(' ', ''), sl.SVO_COMPRESSION_MODE.H264)
87+
recording_param = sl.RecordingParameters(output_svo_file.replace(' ', ''), sl.SVO_COMPRESSION_MODE.H265)
8888
record_err = zed.enable_recording(recording_param)
8989
if record_err == sl.ERROR_CODE.SUCCESS:
9090
print(f"{zed.get_camera_information().camera_model}_SN{sn} Enabled recording")

recording/recording/single camera/python/svo_recording.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def main(opt):
4545
print("Camera Open", status, "Exit program.")
4646
exit(1)
4747

48-
recording_param = sl.RecordingParameters(opt.output_svo_file, sl.SVO_COMPRESSION_MODE.H264) # Enable recording with the filename specified in argument
48+
recording_param = sl.RecordingParameters(opt.output_svo_file, sl.SVO_COMPRESSION_MODE.H265) # Enable recording with the filename specified in argument
4949
err = cam.enable_recording(recording_param)
5050
if err != sl.ERROR_CODE.SUCCESS:
5151
print("Recording ZED : ", err)

tutorials/tutorial 4 - positional tracking/cpp/main.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ int main(int argc, char **argv) {
3636
init_parameters.coordinate_units = UNIT::METER; // Set units in meters
3737
init_parameters.sensors_required = true;
3838

39+
if (argc>1)
40+
init_parameters.input.setFromSVOFile(sl::String(argv[1]));
41+
3942
// Open the camera
4043
auto returned_state = zed.open(init_parameters);
4144
if (returned_state != ERROR_CODE::SUCCESS) {
@@ -87,7 +90,7 @@ int main(int argc, char **argv) {
8790
// get raw acceleration
8891
auto acceleration = sensor_data.imu.linear_acceleration;
8992

90-
cout << "IMU Orientation: {" << zed_orientation << "}, Acceleration: {" << acceleration << "}\n";
93+
cout << "IMU Orientation: {" << imu_orientation << "}, Acceleration: {" << acceleration << "}\n";
9194
}
9295
i++;
9396
}

zed one/python/streaming_sender.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
########################################################################
2020

2121
"""
22-
Open the camera and start streaming images using H264 codec
22+
Open the camera and start streaming images using H265 codec
2323
"""
2424
import sys
2525
import pyzed.sl as sl
@@ -62,7 +62,7 @@ def main(opt):
6262
exit()
6363
stream_params = sl.StreamingParameters()
6464
print("Streaming on port ",stream_params.port) #Get the port used to stream
65-
stream_params.codec = sl.STREAMING_CODEC.H264
65+
stream_params.codec = sl.STREAMING_CODEC.H265
6666
stream_params.bitrate = 4000
6767
status_streaming = cam.enable_streaming(stream_params) #Enable streaming
6868
if status_streaming != sl.ERROR_CODE.SUCCESS:

0 commit comments

Comments
 (0)