Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7637443
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T07:56:27+00:00 2026-05-31T07:56:27+00:00

I am working with some data that another person recorded using the OpenNI recorder

  • 0

I am working with some data that another person recorded using the OpenNI recorder module. Unfortunately, they accidentally set the mirrored capability as on during their recording, so I am having a few problems 1. mirroring the depth using MirrorCap and 2. aligning the depth with the rgb using AlternateViewPointCap. I tried accessing these capabilities from my depth node as follows:

xn::Context ni_context;
xn::Player player;
xn::DepthGenerator g_depth;
xn::ImageGenerator g_image;
ni_context.Init();
ni_context.OpenFileRecording(oni_filename, player);
ni_context.FindExistingNode(XN_NODE_TYPE_DEPTH, g_depth);
ni_context.FindExistingNode(XN_NODE_TYPE_IMAGE, g_image); 
g_depth.GetMirrorCap().SetMirror(false);
g_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);

However, this did not work. Even after I set the mirror to false, the IsMirrored() command on g_depth still returns as true, and the alternateviewpointcap is not changing the depthmap I receive from the generator.

I also tried doing it through a mock node:

xn::MockDepthGenerator m_depth;
m_depth.CreateBasedOn(g_depth);
m_depth.GetMirrorCap().SetMirror(false);
m_depth.GetAlternativeViewPointCap().SetViewPoint(g_image);
xn::DepthMetaData temp;
g_depth.GetMetaData(temp);
m_depth.SetMetaData(temp);

This also does not affect the depth map I get from m_depth. I’d appreciate any and all suggestions for how to make my color and depth information align, NO MATTER HOW HACKY. This data is difficult to record and I need to use it one way or another.

My current solution is to create the mock depth node and flip all of the pixels using my own routine, before setting it with the SetMetaData function. Then, I use OpenCV to create a perspective transform from the RGB image to the depth image by having a user click 4 points. I then apply this transform to the rgb frame to make the values line up. It’s not perfect but it works – however, for the sake of other people who might need to use the data, I want to make a more proper fix.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T07:56:28+00:00Added an answer on May 31, 2026 at 7:56 am

    Unfortunately, some design decisions in OpenNI were apparently influenced by the Primesense SoC – specifically, the SoC can do depth->RGB registration and mirroring in hardware. Unfortunately, this means the output of the generators when you recorded is what you have. Sorry.

    From looking at the code in the Primesense driver to see how they do registration (XnDeviceSensorV2/Registration.cpp), it looks like they don’t export the lens parameters in a way you can access from OpenNI, which is unfortunate. The only hacky solution I see is modifying and recompiling the driver to export the data (note that this is user-mode code so it isn’t that bad. You’ll probably want to fork Avin2’s SensorKinect).

    Also, FYI – mock generators don’t do any processing themselves – the NiRecordSynthetic sample shows an example of how mock nodes are intended to be used.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am working on a SSIS package that extracts some data from DB to
I'm working on an app that needs to retrieve some data from a server.
I'm working on an API that accepts data from remote clients, some of which
I have some working code that I have been using on a test O365
I'm working on a Windows Phone 7 app that requires some data encryption. I'm
I have some Core Data functionality that was working fine until some recent (seemingly
I'm working with a function which yields some data as a std::vector<char> and another
I'm working on a program where I store some data in an integer and
So I've been working with RLIKE to pull some data in a new application
I am working on an app and i have to save some data in

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.