grubcut code

#include <cv.h>
#include <highgui.h>




#include <iostream>


using namespace std;
using namespace cv;




void MyShowImage(Mat Image,const string winName)
{
imshow( winName, Image );
}
void getBinMask( const Mat& comMask, Mat& binMask )
{
    binMask.create( comMask.size(), CV_8UC1 );
    binMask = comMask & 1;
}
int main( int argc, char** argv )
{
    Mat image = imread( "C:\\Users\\Administrator\\Desktop\\7.jpg",1 );
const string winName = "image";




/***********************************/
Mat bg;Mat fg;
Mat bg1;Mat fg1;
Mat bg2;Mat fg2;
Rect rect = Rect(131 ,4 ,136, 198);
Rect rect1= Rect(50 ,193 ,117, 193);
Rect rect2= Rect(215, 189 ,130 ,194);
//Rect rect = Rect(27, 191 ,175 ,176);
//363 195 340 154
Mat mask,res;
Mat mask1,res1;
Mat mask2,res2;
mask.create( image.size(), CV_8UC1);
mask1.create(image.size(),CV_8UC1);
mask2.create(image.size(),CV_8UC1);
    grabCut( image, mask, rect, bg, fg, 1, 0 );
grabCut(image,mask1,rect1,bg1,fg1,1,0);
grabCut(image,mask2,rect2,bg2,fg2,1,0);


Mat binMask;
Mat binMask1;
Mat binMask2;
getBinMask( mask, binMask );
getBinMask(mask1,binMask1);
getBinMask(mask2,binMask2);
    image.copyTo( res, binMask );
image.copyTo(res1,binMask1);
image.copyTo(res2,binMask2);
image.copyTo(res1,res);
image.copyTo(res1,res2);

MyShowImage(res1,winName);


/***********************************/
cvWaitKey(0);
cvDestroyAllWindows();
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值