Example that shows how to acquire depth map and RGB images from a kinect device, and show the warped RGB frame
#include <iostream>
#include <visp3/core/vpConfig.h>
#ifdef VISP_HAVE_LIBFREENECT_AND_DEPENDENCIES
#if (defined(VISP_HAVE_X11) || defined(VISP_HAVE_GTK) || defined(VISP_HAVE_OPENCV) || defined(VISP_HAVE_GDI))
#include <visp3/core/vpImage.h>
#include <visp3/core/vpTime.h>
#include <visp3/gui/vpDisplayGDI.h>
#include <visp3/gui/vpDisplayGTK.h>
#include <visp3/gui/vpDisplayOpenCV.h>
#include <visp3/gui/vpDisplayX.h>
#include <visp3/sensor/vpKinect.h>
int main()
{
try {
#ifdef VISP_HAVE_LIBFREENECT_OLD
Freenect::Freenect<vpKinect> freenect;
vpKinect &kinect = freenect.createDevice(0);
#else
Freenect::Freenect freenect;
#endif
if (0) {
float angle = -3;
kinect.setTiltDegrees(angle);
}
#if 1
#else
#endif
#if defined VISP_HAVE_X11
#elif defined VISP_HAVE_GTK
#elif defined VISP_HAVE_OPENCV
#elif defined VISP_HAVE_GDI
#endif
display.
init(Idmap, 100, 200,
"Depth map");
displayRgb.
init(Irgb, 900, 200,
"Color Image");
displayRgbWarped.
init(Iwarped, 900, 700,
"Warped Color Image");
std::cout << "Click in one image to stop acquisition" << std::endl;
}
std::cout << "Stop acquisition" << std::endl;
return EXIT_SUCCESS;
std::cout << "Catch an exception: " << e << std::endl;
return EXIT_FAILURE;
} catch (...) {
std::cout << "Catch an exception " << std::endl;
return EXIT_FAILURE;
}
}
#else
int main()
{
std::cout << "You do not have X11, or GDI (Graphical Device Interface), or GTK, or OpenCV functionalities to display images..." << std::endl;
std::cout << "Tip if you are on a unix-like system:" << std::endl;
std::cout << "- Install X11, configure again ViSP using cmake and build again this example" << std::endl;
std::cout << "Tip if you are on a windows-like system:" << std::endl;
std::cout << "- Install GDI, configure again ViSP using cmake and build again this example" << std::endl;
return EXIT_SUCCESS;
}
#endif
#else
int main()
{
std::cout << "You do not have Freenect functionality enabled" << std::endl;
std::cout << "Tip if you are on a unix-like system:" << std::endl;
std::cout << "- Install libfreenect, configure again ViSP using cmake and build again this example" << std::endl;
return EXIT_SUCCESS;
}
#endif