opencv/doc/tutorials/app/intelperc.markdown
Kumataro 2a2ff55257
Merge pull request #25496 from Kumataro:fix25495
highgui: wayland: show "NO" status if dependency is missing #25496

Close #25495

- [doc] Add document to enable Wayland highgui-backend in ubuntu 24.04.
- [build] Show "NO" status instead of version if dependency library is missing.
- [build] Fix to find Wayland EGL.
- [fix] Add some callback stub functions to suppress build warning.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [ ] I agree to contribute to the project under Apache 2 License.
- [ ] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [ ] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
      Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
2024-04-29 18:58:29 +03:00

3.5 KiB

Using Creative Senz3D and other Intel RealSense SDK compatible depth sensors

@tableofcontents

@prev_tutorial{tutorial_orbbec_astra} @next_tutorial{tutorial_wayland_ubuntu}

hardwares

Note: This tutorial is partially obsolete since PerC SDK has been replaced with RealSense SDK

Depth sensors compatible with Intel® RealSense SDK are supported through VideoCapture class. Depth map, RGB image and some other formats of output can be retrieved by using familiar interface of VideoCapture.

In order to use depth sensor with OpenCV you should do the following preliminary steps:

-# Install Intel RealSense SDK 2.0 (from here https://github.com/IntelRealSense/librealsense).

-# Configure OpenCV with Intel RealSense SDK support by setting WITH_LIBREALSENSE flag in CMake. If Intel RealSense SDK is found in install folders OpenCV will be built with Intel Realsense SDK library (see a status LIBREALSENSE in CMake log).

-# Build OpenCV.

VideoCapture can retrieve the following data:

-# data given from depth generator: - CAP_INTELPERC_DEPTH_MAP - each pixel is a 16-bit integer. The value indicates the distance from an object to the camera's XY plane or the Cartesian depth. (CV_16UC1) - CAP_INTELPERC_UVDEPTH_MAP - each pixel contains two 32-bit floating point values in the range of 0-1, representing the mapping of depth coordinates to the color coordinates. (CV_32FC2) - CAP_INTELPERC_IR_MAP - each pixel is a 16-bit integer. The value indicates the intensity of the reflected laser beam. (CV_16UC1)

-# data given from RGB image generator: - CAP_INTELPERC_IMAGE - color image. (CV_8UC3)

In order to get depth map from depth sensor use VideoCapture::operator >>, e. g. : @code{.cpp} VideoCapture capture( CAP_REALSENSE ); for(;;) { Mat depthMap; capture >> depthMap;

    if( waitKey( 30 ) >= 0 )
        break;
}

@endcode For getting several data maps use VideoCapture::grab and VideoCapture::retrieve, e.g. : @code{.cpp} VideoCapture capture(CAP_REALSENSE); for(;;) { Mat depthMap; Mat image; Mat irImage;

    capture.grab();

    capture.retrieve( depthMap, CAP_INTELPERC_DEPTH_MAP );
    capture.retrieve(    image, CAP_INTELPERC_IMAGE );
    capture.retrieve(  irImage, CAP_INTELPERC_IR_MAP);

    if( waitKey( 30 ) >= 0 )
        break;
}

@endcode For setting and getting some property of sensor` data generators use VideoCapture::set and VideoCapture::get methods respectively, e.g. : @code{.cpp} VideoCapture capture(CAP_REALSENSE); capture.set( CAP_INTELPERC_DEPTH_GENERATOR | CAP_PROP_INTELPERC_PROFILE_IDX, 0 ); cout << "FPS " << capture.get( CAP_INTELPERC_DEPTH_GENERATOR+CAP_PROP_FPS ) << endl; @endcode Since two types of sensor's data generators are supported (image generator and depth generator), there are two flags that should be used to set/get property of the needed generator:

  • CAP_INTELPERC_IMAGE_GENERATOR -- a flag for access to the image generator properties.
  • CAP_INTELPERC_DEPTH_GENERATOR -- a flag for access to the depth generator properties. This flag value is assumed by default if neither of the two possible values of the property is set.

For more information please refer to the example of usage videocapture_realsense.cpp in opencv/samples/cpp folder.