基本步骤:
- 基于交互式界面由用户选择前景区域;
- 定义一个单通道的输出掩码,0为背景,1为前景,2为可能的背景,3为可能的前景;
- grabCut抠图;将输出结果与可能的前景作比较得到可能的前景;
- 定义三通道的结果图像;
- 从原图中拷贝可能的前景到结果图像;
grabCut( InputArray img, InputOutputArray mask, Rect rect,
InputOutputArray bgdModel, InputOutputArray fgdModel,
int iterCount, int mode = GC_EVAL );
img:输入原图像;
mask:输出掩码;
rect:用户选择的前景矩形区域;
bgModel:输出背景图像;
fgModel:输出前景图像;
iterCount:迭代次数;
#include<opencv2\opencv.hpp>
using namespace cv;
void onMouse(int event, int x, int y, int flags, void* userdata);
Rect rect;
Mat src,roiImg, result;
void showImg();
int main(int arc, ch