@@ -282,8 +282,8 @@ void GlobalMatting::calculateAlphaPatchMatch(const cv::Mat_<cv::Vec3b> &image,
282
282
if (r < 1 )
283
283
break ;
284
284
285
- int di = r * (rand () / (RAND_MAX + 1 .f ));
286
- int dj = r * (rand () / (RAND_MAX + 1 .f ));
285
+ int di = int ( r * (rand () / (RAND_MAX + 1 .f ) ));
286
+ int dj = int ( r * (rand () / (RAND_MAX + 1 .f ) ));
287
287
288
288
int fi = s.fi + di;
289
289
int bj = s.bj + dj;
@@ -419,7 +419,7 @@ void GlobalMatting::expansionOfKnownRegions(cv::InputArray _img, cv::InputOutput
419
419
CV_Error (CV_StsBadArg, " image and trimap mush have same size" );
420
420
421
421
for (int i = 0 ; i < niter; ++i)
422
- expansionOfKnownRegionsHelper (img, trimap, i + 1 , niter - i);
422
+ expansionOfKnownRegionsHelper (img, trimap, i + 1 , float ( niter - i) );
423
423
erodeFB (trimap, 2 );
424
424
}
425
425
@@ -470,8 +470,8 @@ void GlobalMatting::globalMattingHelper(cv::Mat _image, cv::Mat _trimap, cv::Mat
470
470
break ;
471
471
case 128 :
472
472
{
473
- alpha (y, x) = 255 * samples[y][x].alpha ;
474
- conf (y, x) = 255 * exp (-samples[y][x].cost / 6 );
473
+ alpha (y, x) = uchar ( 255 * samples[y][x].alpha ) ;
474
+ conf (y, x) = uchar ( 255 * exp (-samples[y][x].cost / 6 ) );
475
475
cv::Point p = foregroundBoundary[samples[y][x].fi ];
476
476
foreground (y, x) = image (p.y , p.x );
477
477
break ;
0 commit comments