Commit 91e16573 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge remote-tracking branch 'upstream/3.4' into merge-3.4

parents 4cf4cb09 6703cddd
...@@ -625,11 +625,12 @@ void BinaryDescriptor::computeImpl( const Mat& imageSrc, std::vector<KeyLine>& k ...@@ -625,11 +625,12 @@ void BinaryDescriptor::computeImpl( const Mat& imageSrc, std::vector<KeyLine>& k
/* delete useless OctaveSingleLines */ /* delete useless OctaveSingleLines */
for ( size_t i = 0; i < sl.size(); i++ ) for ( size_t i = 0; i < sl.size(); i++ )
{ {
for ( size_t j = 0; j < sl[i].size(); j++ ) for ( size_t j = 0; j < sl[i].size(); )
{ {
//if( (int) ( sl[i][j] ).octaveCount > params.numOfOctave_ ) //if( (int) ( sl[i][j] ).octaveCount > params.numOfOctave_ )
if( (int) ( sl[i][j] ).octaveCount > octaveIndex ) if( (int) ( sl[i][j] ).octaveCount > octaveIndex )
( sl[i] ).erase( ( sl[i] ).begin() + j ); ( sl[i] ).erase( ( sl[i] ).begin() + j );
else j++;
} }
} }
......
...@@ -45,6 +45,7 @@ enum EntityProperty ...@@ -45,6 +45,7 @@ enum EntityProperty
{ {
ENTITY_MATERIAL, ENTITY_MATERIAL,
ENTITY_SCALE, ENTITY_SCALE,
ENTITY_AABB_WORLD
}; };
/** /**
...@@ -106,6 +107,14 @@ public: ...@@ -106,6 +107,14 @@ public:
/// @overload /// @overload
CV_WRAP virtual void setEntityProperty(const String& name, int prop, const String& value) = 0; CV_WRAP virtual void setEntityProperty(const String& name, int prop, const String& value) = 0;
/**
* get the property of an entity
* @param name entity name
* @param prop @ref EntityProperty
* @param value the value
*/
CV_WRAP virtual void getEntityProperty(const String& name, int prop, OutputArray value) = 0;
/** /**
* convenience method to visualize a camera position * convenience method to visualize a camera position
* *
......
...@@ -43,8 +43,14 @@ void _createTexture(const String& name, Mat image) ...@@ -43,8 +43,14 @@ void _createTexture(const String& name, Mat image)
case CV_8UC1: case CV_8UC1:
format = PF_BYTE_L; format = PF_BYTE_L;
break; break;
case CV_16UC1:
format = PF_L16;
break;
case CV_32FC1:
format = PF_FLOAT32_R;
break;
default: default:
CV_Error(Error::StsBadArg, "currently only CV_8UC1, CV_8UC3, CV_8UC4 textures are supported"); CV_Error(Error::StsBadArg, "currently supported formats are only CV_8UC1, CV_8UC3, CV_8UC4, CV_16UC1, CV_32FC1");
break; break;
} }
...@@ -388,18 +394,26 @@ public: ...@@ -388,18 +394,26 @@ public:
int dst_type; int dst_type;
switch(src_type) switch(src_type)
{ {
case PF_R8:
case PF_L8:
dst_type = CV_8U;
break;
case PF_BYTE_RGB: case PF_BYTE_RGB:
dst_type = CV_8UC3; dst_type = CV_8UC3;
break; break;
case PF_BYTE_RGBA: case PF_BYTE_RGBA:
dst_type = CV_8UC4; dst_type = CV_8UC4;
break; break;
case PF_FLOAT32_R:
dst_type = CV_32F;
break;
case PF_FLOAT32_RGB: case PF_FLOAT32_RGB:
dst_type = CV_32FC3; dst_type = CV_32FC3;
break; break;
case PF_FLOAT32_RGBA: case PF_FLOAT32_RGBA:
dst_type = CV_32FC4; dst_type = CV_32FC4;
break; break;
case PF_L16:
case PF_DEPTH16: case PF_DEPTH16:
dst_type = CV_16U; dst_type = CV_16U;
break; break;
...@@ -549,6 +563,35 @@ public: ...@@ -549,6 +563,35 @@ public:
node.setScale(value[0], value[1], value[2]); node.setScale(value[0], value[1], value[2]);
} }
void getEntityProperty(const String& name, int prop, OutputArray value)
{
SceneNode& node = _getSceneNode(sceneMgr, name);
switch(prop)
{
case ENTITY_SCALE:
{
Vector3 s = node.getScale();
Mat_<Real>(1, 3, s.ptr()).copyTo(value);
return;
}
case ENTITY_AABB_WORLD:
{
Entity* ent = dynamic_cast<Entity*>(node.getAttachedObject(name));
CV_Assert(ent && "invalid entity");
AxisAlignedBox aabb = ent->getWorldBoundingBox(true);
Vector3 mn = aabb.getMinimum();
Vector3 mx = aabb.getMaximum();
Mat_<Real> ret(2, 3);
Mat_<Real>(1, 3, mn.ptr()).copyTo(ret.row(0));
Mat_<Real>(1, 3, mx.ptr()).copyTo(ret.row(1));
ret.copyTo(value);
return;
}
default:
CV_Error(Error::StsBadArg, "unsupported property");
}
}
void _createBackground() void _createBackground()
{ {
String name = "_" + sceneMgr->getName() + "_DefaultBackground"; String name = "_" + sceneMgr->getName() + "_DefaultBackground";
......
...@@ -38,8 +38,6 @@ ...@@ -38,8 +38,6 @@
#include <opencv2/core.hpp> #include <opencv2/core.hpp>
#include <Eigen/Core>
namespace cv namespace cv
{ {
namespace sfm namespace sfm
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment