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

Function learnGMMs

deps/opencv/modules/imgproc/src/grabcut.cpp:418–441  ·  view source on GitHub ↗

Learn GMMs parameters. */

Source from the content-addressed store, hash-verified

416 Learn GMMs parameters.
417*/
418static void learnGMMs( const Mat& img, const Mat& mask, const Mat& compIdxs, GMM& bgdGMM, GMM& fgdGMM )
419{
420 bgdGMM.initLearning();
421 fgdGMM.initLearning();
422 Point p;
423 for( int ci = 0; ci < GMM::componentsCount; ci++ )
424 {
425 for( p.y = 0; p.y < img.rows; p.y++ )
426 {
427 for( p.x = 0; p.x < img.cols; p.x++ )
428 {
429 if( compIdxs.at<int>(p) == ci )
430 {
431 if( mask.at<uchar>(p) == GC_BGD || mask.at<uchar>(p) == GC_PR_BGD )
432 bgdGMM.addSample( ci, img.at<Vec3b>(p) );
433 else
434 fgdGMM.addSample( ci, img.at<Vec3b>(p) );
435 }
436 }
437 }
438 }
439 bgdGMM.endLearning();
440 fgdGMM.endLearning();
441}
442
443/*
444 Construct GCGraph

Callers 1

grabCutMethod · 0.85

Calls 3

initLearningMethod · 0.80
addSampleMethod · 0.80
endLearningMethod · 0.80

Tested by

no test coverage detected