|
|
@ -85,10 +85,10 @@ namespace |
|
|
|
}; |
|
|
|
}; |
|
|
|
size_t colors_mum = sizeof(colors)/sizeof(colors[0]); |
|
|
|
size_t colors_mum = sizeof(colors)/sizeof(colors[0]); |
|
|
|
|
|
|
|
|
|
|
|
#if (defined __cplusplus && __cplusplus > 199711L) || defined _STLPORT_MAJOR |
|
|
|
template<class FwIt, class T> inline void _iota(FwIt first, FwIt last, T value) |
|
|
|
#else |
|
|
|
{ |
|
|
|
template<class FwIt, class T> void iota(FwIt first, FwIt last, T value) { while(first != last) *first++ = value++; } |
|
|
|
while(first != last) *first++ = value++; |
|
|
|
#endif |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void computeNormals( const Octree& Octree, const vector<Point3f>& centers, vector<Point3f>& normals, |
|
|
|
void computeNormals( const Octree& Octree, const vector<Point3f>& centers, vector<Point3f>& normals, |
|
|
|
vector<uchar>& mask, float normalRadius, int minNeighbors = 20) |
|
|
|
vector<uchar>& mask, float normalRadius, int minNeighbors = 20) |
|
|
@ -799,14 +799,14 @@ void cv::SpinImageModel::selectRandomSubset(float ratio) |
|
|
|
else if (setSize == vtxSize) |
|
|
|
else if (setSize == vtxSize) |
|
|
|
{ |
|
|
|
{ |
|
|
|
subset.resize(vtxSize); |
|
|
|
subset.resize(vtxSize); |
|
|
|
iota(subset.begin(), subset.end(), 0); |
|
|
|
_iota(subset.begin(), subset.end(), 0); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
RNG& rnd = theRNG(); |
|
|
|
RNG& rnd = theRNG(); |
|
|
|
|
|
|
|
|
|
|
|
vector<size_t> left(vtxSize); |
|
|
|
vector<size_t> left(vtxSize); |
|
|
|
iota(left.begin(), left.end(), (size_t)0); |
|
|
|
_iota(left.begin(), left.end(), (size_t)0); |
|
|
|
|
|
|
|
|
|
|
|
subset.resize(setSize); |
|
|
|
subset.resize(setSize); |
|
|
|
for(size_t i = 0; i < setSize; ++i) |
|
|
|
for(size_t i = 0; i < setSize; ++i) |
|
|
@ -879,7 +879,7 @@ void cv::SpinImageModel::compute() |
|
|
|
{ |
|
|
|
{ |
|
|
|
mesh.computeNormals(normalRadius, minNeighbors); |
|
|
|
mesh.computeNormals(normalRadius, minNeighbors); |
|
|
|
subset.resize(mesh.vtx.size()); |
|
|
|
subset.resize(mesh.vtx.size()); |
|
|
|
iota(subset.begin(), subset.end(), 0); |
|
|
|
_iota(subset.begin(), subset.end(), 0); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
mesh.computeNormals(subset, normalRadius, minNeighbors); |
|
|
|
mesh.computeNormals(subset, normalRadius, minNeighbors); |
|
|
|