2 #include <visp3/core/vpImage.h> 3 #include <visp3/gui/vpDisplayGDI.h> 4 #include <visp3/gui/vpDisplayOpenCV.h> 5 #include <visp3/gui/vpDisplayX.h> 6 #include <visp3/sensor/vpRealSense.h> 7 #include <visp3/sensor/vpRealSense2.h> 13 int main(
int argc,
char **argv)
15 #if defined(VISP_HAVE_REALSENSE) || defined(VISP_HAVE_REALSENSE2) && (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11) 16 std::vector<std::pair<std::string, std::string> > type_serial_nb;
17 std::vector<bool> cam_found;
19 for (
int i = 0; i < argc; i++) {
20 if (std::string(argv[i]) ==
"--T265") {
21 type_serial_nb.push_back(std::make_pair(
"T265", std::string(argv[i + 1])));
23 else if (std::string(argv[i]) ==
"--D435") {
24 type_serial_nb.push_back(std::make_pair(
"D435", std::string(argv[i + 1])));
26 else if (std::string(argv[i]) ==
"--SR300") {
27 type_serial_nb.push_back(std::make_pair(
"SR300", std::string(argv[i + 1])));
29 else if (std::string(argv[i]) ==
"--help" || std::string(argv[i]) ==
"-h") {
30 std::cout <<
"\nUsage: " << argv[0]
31 <<
" [--T265 <serial number>] [--D435 <serial number>] [--SR300 <serial number>]\n" 32 <<
"\nExample to use 2 T265 cameras:\n" 33 <<
" " << argv[0] <<
" --T265 11622110511 --T265 11622110433 \n" 34 <<
"\nExample to use 1 T265 and 1 D435 cameras:\n" 35 <<
" " << argv[0] <<
" --T265 11622110511 --D435 752112077408 \n" 36 <<
"\nExample to use 2 T265 and 1 D435 cameras:\n" 37 <<
" " << argv[0] <<
" --T265 11622110511 --T265 11622110433 --D435 752112070408 \n" 43 rs2::config T265_cfg, D435_cfg;
49 #elif defined(VISP_HAVE_GDI) 51 #elif defined(VISP_HAVE_OPENCV) 54 std::cout <<
"No image viewer is available..." << std::endl;
59 for (
size_t i = 0; i < type_serial_nb.size(); i++) {
60 std::cout <<
"Opening " << type_serial_nb[i].first <<
" with ID: " << type_serial_nb[i].second <<
"." << std::endl;
61 if (type_serial_nb[i].first ==
"T265") {
62 T265_cfg.enable_device(type_serial_nb[i].second);
63 T265_cfg.enable_stream(RS2_STREAM_FISHEYE, 1, RS2_FORMAT_Y8);
64 T265_cfg.enable_stream(RS2_STREAM_FISHEYE, 2, RS2_FORMAT_Y8);
65 cam_found.push_back(g[i].open(T265_cfg));
66 if(!cam_found.back()) {
67 std::cout <<
"Device with ID: " << type_serial_nb[i].second <<
" not found." << std::endl;
71 D435_cfg.enable_device(type_serial_nb[i].second);
72 D435_cfg.disable_stream(RS2_STREAM_DEPTH);
73 D435_cfg.disable_stream(RS2_STREAM_INFRARED);
74 D435_cfg.enable_stream(RS2_STREAM_COLOR, 640, 480, RS2_FORMAT_RGBA8, 30);
75 cam_found.push_back(g[i].open(D435_cfg));
76 if(!cam_found.back()) {
77 std::cout <<
"Device with ID: " << type_serial_nb[i].second <<
" not found." << std::endl;
83 for (
size_t i = 0; i < type_serial_nb.size(); i++) {
85 if (type_serial_nb[i].first ==
"T265") {
86 g[i].
acquire(&I[i], NULL, NULL);
87 if (!d[i].isInitialised()) {
88 d[i].
init(I[i], 100*i, 100*i,
"T265 left image");
95 if (!d[i].isInitialised()) {
96 d[i].
init(I[i], 100*i, 100*i, type_serial_nb[i].first.c_str());
118 #if !(defined(VISP_HAVE_REALSENSE) || defined(VISP_HAVE_REALSENSE2)) 119 std::cout <<
"Install librealsense version > 2.31.0, configure and build ViSP again to use this example" << std::endl;
121 #if (VISP_CXX_STANDARD < VISP_CXX_STANDARD_11) 122 std::cout <<
"This turorial should be built with c++11 support" << std::endl;
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
Display for windows using GDI (available on any windows 32 platform).
Use the X11 console to display images on unix-like OS. Thus to enable this class X11 should be instal...
void init(vpImage< unsigned char > &I, int winx=-1, int winy=-1, const std::string &title="")
static void flush(const vpImage< unsigned char > &I)
static void display(const vpImage< unsigned char > &I)
The vpDisplayOpenCV allows to display image using the OpenCV library. Thus to enable this class OpenC...
void acquire(vpImage< unsigned char > &grey, double *ts=NULL)