Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Update the tutorial of using Orbbec Astra cameras#25813

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
asmorkalov merged 3 commits intoopencv:4.xfromkaingwade:orbbec-astra
Jul 1, 2024
Merged
Show file tree
Hide file tree
Changes from1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletiondoc/tutorials/app/intelperc.markdown
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,7 +3,7 @@ Using Creative Senz3D and other Intel RealSense SDK compatible depth sensors {#t

@tableofcontents

@prev_tutorial{tutorial_orbbec_astra}
@prev_tutorial{tutorial_orbbec_astra_openni}
@next_tutorial{tutorial_wayland_ubuntu}

![hardwares](images/realsense.jpg)
Expand Down
2 changes: 1 addition & 1 deletiondoc/tutorials/app/kinect_openni.markdown
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -4,7 +4,7 @@ Using Kinect and other OpenNI compatible depth sensors {#tutorial_kinect_openni}
@tableofcontents

@prev_tutorial{tutorial_video_write}
@next_tutorial{tutorial_orbbec_astra}
@next_tutorial{tutorial_orbbec_astra_openni}


Depth sensors compatible with OpenNI (Kinect, XtionPRO, ...) are supported through VideoCapture
Expand Down
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
Using Orbbec Astra 3D cameras {#tutorial_orbbec_astra}
Using Orbbec Astra 3D cameras {#tutorial_orbbec_astra_openni}
======================================================

@tableofcontents
Expand All@@ -9,7 +9,7 @@ Using Orbbec Astra 3D cameras {#tutorial_orbbec_astra}

### Introduction

This tutorial is devoted to the Astra Series of Orbbec 3D cameras (https://orbbec3d.com/index/Product/info.html?cate=38&id=36).
This tutorial is devoted to the Astra Series of Orbbec 3D cameras (https://www.orbbec.com/products/structured-light-camera/astra-series/).
That cameras have a depth sensor in addition to a common color sensor. The depth sensors can be read using
the open source OpenNI API with @ref cv::VideoCapture class. The video stream is provided through the regular
camera interface.
Expand All@@ -18,7 +18,7 @@ camera interface.

In order to use the Astra camera's depth sensor with OpenCV you should do the following steps:

-# Download the latest version of Orbbec OpenNI SDK (from here <https://orbbec3d.com/index/download.html>).
-# Download the latest version of Orbbec OpenNI SDK (from here <https://www.orbbec.com/developers/openni-sdk/>).
Unzip the archive, choose the build according to your operating system and follow installation
steps provided in the Readme file.

Expand DownExpand Up@@ -69,6 +69,7 @@ In order to use the Astra camera's depth sensor with OpenCV you should do the fo
chmod a+r $OUT_FILE
echo "exit"
@endcode
If you want to use the older SDK version 2.3.0.63, it can still be accessed from here <https://3dclub.orbbec3d.com/t/universal-download-thread-for-astra-series-cameras/622>.

-# Now you can configure OpenCV with OpenNI support enabled by setting the `WITH_OPENNI2` flag in CMake.
You may also like to enable the `BUILD_EXAMPLES` flag to get a code sample working with your Astra camera.
Expand DownExpand Up@@ -106,7 +107,7 @@ can be read using the OpenNI interface with @ref cv::VideoCapture class. The vid
not available through OpenNI API and is only provided via the regular camera interface.
So, to get both depth and color frames, two @ref cv::VideoCapture objects should be created:

@snippetlineno samples/cpp/tutorial_code/videoio/orbbec_astra/orbbec_astra.cpp Open streams
@snippetlineno samples/cpp/tutorial_code/videoio/openni_orbbec_astra/openni_orbbec_astra.cpp Open streams

The first object will use the OpenNI2 API to retrieve depth data. The second one uses the
Video4Linux2 interface to access the color sensor. Note that the example above assumes that
Expand All@@ -119,12 +120,12 @@ For this example, we’ll configure width and height of both streams to VGA reso
the maximum resolution available for both sensors, and we’d like both stream parameters to be the
same for easier color-to-depth data registration:

@snippetlineno samples/cpp/tutorial_code/videoio/orbbec_astra/orbbec_astra.cpp Setup streams
@snippetlineno samples/cpp/tutorial_code/videoio/openni_orbbec_astra/openni_orbbec_astra.cpp Setup streams

For setting and retrieving some property of sensor data generators use @ref cv::VideoCapture::set and
@ref cv::VideoCapture::get methods respectively, e.g. :

@snippetlineno samples/cpp/tutorial_code/videoio/orbbec_astra/orbbec_astra.cpp Get properties
@snippetlineno samples/cpp/tutorial_code/videoio/openni_orbbec_astra/openni_orbbec_astra.cpp Get properties

The following properties of cameras available through OpenNI interface are supported for the depth
generator:
Expand DownExpand Up@@ -156,7 +157,7 @@ As there are two video sources that should be read simultaneously, it’s necess
threads to avoid blocking. Example implementation that gets frames from each sensor in a new thread
and stores them in a list along with their timestamps:

@snippetlineno samples/cpp/tutorial_code/videoio/orbbec_astra/orbbec_astra.cpp Read streams
@snippetlineno samples/cpp/tutorial_code/videoio/openni_orbbec_astra/openni_orbbec_astra.cpp Read streams

VideoCapture can retrieve the following data:

Expand All@@ -177,7 +178,7 @@ two video streams may become out of sync even when both streams are set up for t
A post-synchronization procedure can be applied to the streams to combine depth and color frames into
pairs. The sample code below demonstrates this procedure:

@snippetlineno samples/cpp/tutorial_code/videoio/orbbec_astra/orbbec_astra.cpp Pair frames
@snippetlineno samples/cpp/tutorial_code/videoio/openni_orbbec_astra/openni_orbbec_astra.cpp Pair frames

In the code snippet above the execution is blocked until there are some frames in both frame lists.
When there are new frames, their timestamps are being checked -- if they differ more than a half of
Expand All@@ -194,5 +195,5 @@ but the depth data makes it easy.
![Depth frame](images/astra_depth.png)

The complete implementation can be found in
[orbbec_astra.cpp](https://github.com/opencv/opencv/tree/4.x/samples/cpp/tutorial_code/videoio/orbbec_astra/orbbec_astra.cpp)
[openni_orbbec_astra.cpp](https://github.com/opencv/opencv/tree/4.x/samples/cpp/tutorial_code/videoio/openni_orbbec_astra/openni_orbbec_astra.cpp)
in `samples/cpp/tutorial_code/videoio` directory.
2 changes: 1 addition & 1 deletiondoc/tutorials/app/table_of_content_app.markdown
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,6 @@ Application utils (highgui, imgcodecs, videoio modules) {#tutorial_table_of_cont
- @subpage tutorial_video_input_psnr_ssim
- @subpage tutorial_video_write
- @subpage tutorial_kinect_openni
- @subpagetutorial_orbbec_astra
- @subpagetutorial_orbbec_astra_openni
- @subpage tutorial_intelperc
- @subpage tutorial_wayland_ubuntu

[8]ページ先頭

©2009-2025 Movatter.jp