mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
GUI: ask for MLS when saving or viewing high res clouds (added parameter values in progress dialog)
Source: added focalLength parameter for RGBD camera (if not null, it will override the value from the camera) git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1557 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
@@ -69,10 +69,12 @@ public:
|
||||
//getters
|
||||
float getImageRate() const {return _imageRate;}
|
||||
const Transform & getLocalTransform() const {return _localTransform;}
|
||||
float getFocalLength() const {return _focalLength;}
|
||||
|
||||
//setters
|
||||
void setImageRate(float imageRate) {_imageRate = imageRate;}
|
||||
void setLocalTransform(const Transform & localTransform) {_localTransform= localTransform;}
|
||||
void setFocalLength(float focalLength) {_focalLength = focalLength;}
|
||||
|
||||
protected:
|
||||
/**
|
||||
@@ -81,7 +83,8 @@ protected:
|
||||
* @param imageRate : image/second , 0 for fast as the camera can
|
||||
*/
|
||||
CameraRGBD(float imageRate = 0,
|
||||
const Transform & localTransform = Transform::getIdentity());
|
||||
const Transform & localTransform = Transform::getIdentity(),
|
||||
float focalLength = 0.0f);
|
||||
|
||||
virtual void captureImage(cv::Mat & rgb, cv::Mat & depth, float & depthConstant) = 0;
|
||||
|
||||
@@ -89,6 +92,7 @@ private:
|
||||
float _imageRate;
|
||||
Transform _localTransform;
|
||||
UTimer * _frameRateTimer;
|
||||
float _focalLength;
|
||||
};
|
||||
|
||||
/////////////////////////
|
||||
@@ -104,7 +108,8 @@ public:
|
||||
// default local transform z in, x right, y down));
|
||||
CameraOpenni(const std::string & deviceId="",
|
||||
float imageRate = 0,
|
||||
const Transform & localTransform = Transform::getIdentity());
|
||||
const Transform & localTransform = Transform::getIdentity(),
|
||||
float focalLength = 0.0f);
|
||||
virtual ~CameraOpenni();
|
||||
|
||||
void image_cb (
|
||||
@@ -141,7 +146,8 @@ public:
|
||||
public:
|
||||
CameraOpenNICV(bool asus = false,
|
||||
float imageRate = 0,
|
||||
const Transform & localTransform = Transform::getIdentity());
|
||||
const Transform & localTransform = Transform::getIdentity(),
|
||||
float focalLength = 0.0f);
|
||||
virtual ~CameraOpenNICV();
|
||||
|
||||
virtual bool init();
|
||||
@@ -167,7 +173,8 @@ public:
|
||||
|
||||
public:
|
||||
CameraOpenNI2(float imageRate = 0,
|
||||
const Transform & localTransform = Transform::getIdentity());
|
||||
const Transform & localTransform = Transform::getIdentity(),
|
||||
float focalLength = 0.0f);
|
||||
virtual ~CameraOpenNI2();
|
||||
|
||||
virtual bool init();
|
||||
@@ -198,7 +205,8 @@ public:
|
||||
// default local transform z in, x right, y down));
|
||||
CameraFreenect(int deviceId= 0,
|
||||
float imageRate=0.0f,
|
||||
const Transform & localTransform = Transform::getIdentity());
|
||||
const Transform & localTransform = Transform::getIdentity(),
|
||||
float focalLength = 0.0f);
|
||||
virtual ~CameraFreenect();
|
||||
|
||||
bool init();
|
||||
|
||||
@@ -50,10 +50,11 @@
|
||||
namespace rtabmap
|
||||
{
|
||||
|
||||
CameraRGBD::CameraRGBD(float imageRate, const Transform & localTransform) :
|
||||
CameraRGBD::CameraRGBD(float imageRate, const Transform & localTransform, float focalLength) :
|
||||
_imageRate(imageRate),
|
||||
_localTransform(localTransform),
|
||||
_frameRateTimer(new UTimer())
|
||||
_frameRateTimer(new UTimer()),
|
||||
_focalLength(focalLength)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -89,14 +90,18 @@ void CameraRGBD::takeImage(cv::Mat & rgb, cv::Mat & depth, float & depthConstant
|
||||
|
||||
UTimer timer;
|
||||
this->captureImage(rgb, depth, depthConstant);
|
||||
if(_focalLength)
|
||||
{
|
||||
depthConstant = 1.0f/_focalLength; // override if set
|
||||
}
|
||||
UDEBUG("Time capturing image = %fs", timer.ticks());
|
||||
}
|
||||
|
||||
/////////////////////////
|
||||
// CameraOpenNIPCL
|
||||
/////////////////////////
|
||||
CameraOpenni::CameraOpenni(const std::string & deviceId, float imageRate, const Transform & localTransform) :
|
||||
CameraRGBD(imageRate, localTransform),
|
||||
CameraOpenni::CameraOpenni(const std::string & deviceId, float imageRate, const Transform & localTransform, float focalLength) :
|
||||
CameraRGBD(imageRate, localTransform, focalLength),
|
||||
interface_(0),
|
||||
deviceId_(deviceId),
|
||||
depthConstant_(0.0f)
|
||||
@@ -205,8 +210,8 @@ bool CameraOpenNICV::available()
|
||||
return cv::getBuildInformation().find("OpenNI: YES") != std::string::npos;
|
||||
}
|
||||
|
||||
CameraOpenNICV::CameraOpenNICV(bool asus, float imageRate, const rtabmap::Transform & localTransform) :
|
||||
CameraRGBD(imageRate, localTransform),
|
||||
CameraOpenNICV::CameraOpenNICV(bool asus, float imageRate, const rtabmap::Transform & localTransform, float focalLength) :
|
||||
CameraRGBD(imageRate, localTransform, focalLength),
|
||||
_asus(asus),
|
||||
_depthFocal(0.0f)
|
||||
{
|
||||
@@ -299,8 +304,8 @@ bool CameraOpenNI2::available()
|
||||
#endif
|
||||
}
|
||||
|
||||
CameraOpenNI2::CameraOpenNI2(float imageRate, const rtabmap::Transform & localTransform) :
|
||||
CameraRGBD(imageRate, localTransform),
|
||||
CameraOpenNI2::CameraOpenNI2(float imageRate, const rtabmap::Transform & localTransform, float focalLength) :
|
||||
CameraRGBD(imageRate, localTransform, focalLength),
|
||||
#ifdef WITH_OPENNI2
|
||||
_device(new openni::Device()),
|
||||
_color(new openni::VideoStream()),
|
||||
@@ -685,8 +690,8 @@ bool CameraFreenect::available()
|
||||
#endif
|
||||
}
|
||||
|
||||
CameraFreenect::CameraFreenect(int deviceId, float imageRate, const Transform & localTransform) :
|
||||
CameraRGBD(imageRate, localTransform),
|
||||
CameraFreenect::CameraFreenect(int deviceId, float imageRate, const Transform & localTransform, float focalLength) :
|
||||
CameraRGBD(imageRate, localTransform, focalLength),
|
||||
deviceId_(deviceId),
|
||||
ctx_(0),
|
||||
freenectDevice_(0)
|
||||
|
||||
Reference in New Issue
Block a user