MCPcopy Create free account
hub / github.com/creatale/node-dv / KMeansPPDistanceComputer

Class KMeansPPDistanceComputer

deps/opencv/modules/core/src/matrix.cpp:2539–2575  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2537}
2538
2539class KMeansPPDistanceComputer : public ParallelLoopBody
2540{
2541public:
2542 KMeansPPDistanceComputer( float *_tdist2,
2543 const float *_data,
2544 const float *_dist,
2545 int _dims,
2546 size_t _step,
2547 size_t _stepci )
2548 : tdist2(_tdist2),
2549 data(_data),
2550 dist(_dist),
2551 dims(_dims),
2552 step(_step),
2553 stepci(_stepci) { }
2554
2555 void operator()( const cv::Range& range ) const
2556 {
2557 const int begin = range.start;
2558 const int end = range.end;
2559
2560 for ( int i = begin; i<end; i++ )
2561 {
2562 tdist2[i] = std::min(normL2Sqr_(data + step*i, data + stepci, dims), dist[i]);
2563 }
2564 }
2565
2566private:
2567 KMeansPPDistanceComputer& operator=(const KMeansPPDistanceComputer&); // to quiet MSVC
2568
2569 float *tdist2;
2570 const float *data;
2571 const float *dist;
2572 const int dims;
2573 const size_t step;
2574 const size_t stepci;
2575};
2576
2577/*
2578k-means center initialization using the following algorithm:

Callers 1

generateCentersPPFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected