mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-19 02:16:34 +08:00
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
This commit is contained in:
@@ -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
|
|||||||
{
|
{
|
||||||
ENTITY_MATERIAL,
|
ENTITY_MATERIAL,
|
||||||
ENTITY_SCALE,
|
ENTITY_SCALE,
|
||||||
|
ENTITY_AABB_WORLD
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -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)
|
|||||||
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:
|
|||||||
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:
|
|||||||
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 @@
|
|||||||
|
|
||||||
#include <opencv2/core.hpp>
|
#include <opencv2/core.hpp>
|
||||||
|
|
||||||
#include <Eigen/Core>
|
|
||||||
|
|
||||||
namespace cv
|
namespace cv
|
||||||
{
|
{
|
||||||
namespace sfm
|
namespace sfm
|
||||||
|
Reference in New Issue
Block a user