PointCloudLibrary/pcl

OniGrabber wrongly assumes image data is RGB

Open

#683 geöffnet am 19. Mai 2014

Auf GitHub ansehen
 (4 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C++ (4.506 Forks)batch import
good first issuekind: todomodule: ioneeds: author reply

Repository-Metriken

Stars
 (9.023 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 8T 7h) (3 gemergte PRs in 30 T)

Beschreibung

In openni_device_oni.cpp:

boost::shared_ptr<openni_wrapper::Image> 
openni_wrapper::DeviceONI::getCurrentImage(boost::shared_ptr<xn::ImageMetaData> image_meta_data) const throw ()
{
  return (boost::shared_ptr<openni_wrapper::Image> (new openni_wrapper::ImageRGB24 (image_meta_data)));
}

This leads to weirdly corrupted images when .oni files that have a different encoding are played back in pcl_openni_viewer or when using the -oni switch in kinfu_app.

The openni_wrapper::DeviceONI::DeviceONI constructor should check the XnPixelFormat returned by image_generator_.GetPixelFormat() and pick the correct Image type, or at least throw an error if that's not RGB instead of wrongly interpreting the data.

Contributor Guide