mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
fixed build with the latest version of freenect2
This commit is contained in:
@@ -1229,7 +1229,7 @@ bool CameraFreenect2::init(const std::string & calibrationFolder)
|
|||||||
//default registration params
|
//default registration params
|
||||||
libfreenect2::Freenect2Device::IrCameraParams depthParams = dev_->getIrCameraParams();
|
libfreenect2::Freenect2Device::IrCameraParams depthParams = dev_->getIrCameraParams();
|
||||||
libfreenect2::Freenect2Device::ColorCameraParams colorParams = dev_->getColorCameraParams();
|
libfreenect2::Freenect2Device::ColorCameraParams colorParams = dev_->getColorCameraParams();
|
||||||
reg_ = new libfreenect2::Registration(&depthParams, &colorParams);
|
reg_ = new libfreenect2::Registration(depthParams, colorParams);
|
||||||
|
|
||||||
// look for calibration files
|
// look for calibration files
|
||||||
if(!calibrationFolder.empty())
|
if(!calibrationFolder.empty())
|
||||||
@@ -1312,7 +1312,20 @@ void CameraFreenect2::captureImage(cv::Mat & rgb, cv::Mat & depth, float & fx, f
|
|||||||
if(dev_ && listener_)
|
if(dev_ && listener_)
|
||||||
{
|
{
|
||||||
libfreenect2::FrameMap frames;
|
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 *rgbFrame = 0;
|
||||||
libfreenect2::Frame *irFrame = 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
|
//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);
|
cv::flip(rgbMat, rgb, 1);
|
||||||
|
|
||||||
if(stereoModel_.isValid())
|
if(stereoModel_.isValid())
|
||||||
@@ -1504,12 +1519,6 @@ void CameraFreenect2::captureImage(cv::Mat & rgb, cv::Mat & depth, float & fx, f
|
|||||||
}
|
}
|
||||||
listener_->release(frames);
|
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
|
#else
|
||||||
UERROR("CameraFreenect2: RTAB-Map is not built with Freenect2 support!");
|
UERROR("CameraFreenect2: RTAB-Map is not built with Freenect2 support!");
|
||||||
|
|||||||
Reference in New Issue
Block a user