fixed build with the latest version of freenect2

This commit is contained in:
matlabbe
2015-06-16 18:51:45 -04:00
parent feba562c1b
commit aa4005b266

View File

@@ -1229,7 +1229,7 @@ bool CameraFreenect2::init(const std::string & calibrationFolder)
//default registration params
libfreenect2::Freenect2Device::IrCameraParams depthParams = dev_->getIrCameraParams();
libfreenect2::Freenect2Device::ColorCameraParams colorParams = dev_->getColorCameraParams();
reg_ = new libfreenect2::Registration(&depthParams, &colorParams);
reg_ = new libfreenect2::Registration(depthParams, colorParams);
// look for calibration files
if(!calibrationFolder.empty())
@@ -1312,7 +1312,20 @@ void CameraFreenect2::captureImage(cv::Mat & rgb, cv::Mat & depth, float & fx, f
if(dev_ && listener_)
{
libfreenect2::FrameMap frames;
if(listener_->waitForNewFrame(frames, 1000))
#ifndef LIBFREENECT2_THREADING_STDLIB
UDEBUG("Waiting for new frames... If it is stalled here, rtabmap should link on libusb of "
"libfreenect2, this can be done by setting LD_LIBRARY_PATH to "
"\"libfreenect2/depends/libusb/lib\"");
listener_->waitForNewFrame(frames);
#else
if(!listener_->waitForNewFrame(frames, 1000))
{
UWARN("CameraFreenect2: Failed to get frames! rtabmap should link on libusb of "
"libfreenect2, this can be done by setting LD_LIBRARY_PATH to "
"\"libfreenect2/depends/libusb/lib\"");
}
else
#endif
{
libfreenect2::Frame *rgbFrame = 0;
libfreenect2::Frame *irFrame = 0;
@@ -1378,7 +1391,9 @@ void CameraFreenect2::captureImage(cv::Mat & rgb, cv::Mat & depth, float & fx, f
{
//rgb + ir or rgb + depth
cv::Mat rgbMat(rgbFrame->height, rgbFrame->width, CV_8UC3, rgbFrame->data);
cv::Mat rgbMatC4(rgbFrame->height, rgbFrame->width, CV_8UC4, rgbFrame->data);
cv::Mat rgbMat; // rtabmap uses 3 channels RGB
cv::cvtColor(rgbMatC4, rgbMat, CV_BGRA2BGR);
cv::flip(rgbMat, rgb, 1);
if(stereoModel_.isValid())
@@ -1504,12 +1519,6 @@ void CameraFreenect2::captureImage(cv::Mat & rgb, cv::Mat & depth, float & fx, f
}
listener_->release(frames);
}
else
{
UWARN("CameraFreenect2: Failed to get frames! rtabmap should link on libusb of "
"libfreenect2, this can be done by setting LD_LIBRARY_PATH to "
"\"libfreenect2/depends/libusb/lib\"");
}
}
#else
UERROR("CameraFreenect2: RTAB-Map is not built with Freenect2 support!");