Learn GMMs parameters. */
| 416 | Learn GMMs parameters. |
| 417 | */ |
| 418 | static 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 |
no test coverage detected