基本步驟:
- 基于互動式界面由使用者選擇前景區域;
- 定義一個單通道的輸出掩碼,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