How to change Grabcut black backgroung to other color [closed]

asked 2014-04-29 02:27:47 -0500

Opencv_lover gravatar image

updated 2019-03-03 09:40:06 -0500

Hello,every one,I use grabcut as opencv step by step ,but the result image is not the right image as I need,here is the code,It is should be output an white background bitmap ,but it is still black.

 //GrabCut part
         Mat img = new Mat();
         Utils.bitmapToMat(bitmap, img);
         Log.d(TAG, "img: " + img);

         int r = img.rows();
         int c = img.cols();

         Point p1 = new Point(rect.left, );
         Point p2 = new Point(rect.right, rect.bottom);
         org.opencv.core.Rect rect1=new  org.opencv.core.Rect(p1,p2) ;
         //Rect rect = new Rect(50,30, 100,200);
         Log.d(TAG, "rect: " + rect);
         Mat mask = new Mat();
         mask.setTo(new Scalar(125));
         Mat fgdModel = new Mat();
         fgdModel.setTo(new Scalar(255, 255, 255));
         Mat bgdModel = new Mat();
         bgdModel.setTo(new Scalar(255, 255, 255));
         Mat imgC3 = new Mat();  
         Imgproc.cvtColor(img, imgC3, Imgproc.COLOR_RGBA2RGB);
         Log.d(TAG, "imgC3: " + imgC3);
         Log.d(TAG, "Grabcut begins");
         Imgproc.grabCut(imgC3, mask, rect1, bgdModel, fgdModel,5, Imgproc.GC_INIT_WITH_RECT);
         Mat source = new Mat(1, 1, CvType.CV_8U, new Scalar(3.0));, source, mask, Core.CMP_EQ);
         Mat foreground = new Mat(img.size(), CvType.CV_8UC3, new Scalar(255, 255, 255));//background should be white
        //  foreground.setTo(new Scalar(255, 255, 255));
            Utils.matToBitmap(foreground, bitmap);
edit retag flag offensive reopen merge delete

Closed for the following reason duplicate question by StevenPuttemans
close date 2014-04-29 03:37:57.721024


Stick to one topic please ... your question is identical except from a changing color. Combine your questions wisely.

StevenPuttemans gravatar imageStevenPuttemans ( 2014-04-29 03:36:46 -0500 )edit