91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 406KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-07-11
  • 語言: 其他
  • 標簽: Grabcut??OpenCV??

資源簡介

對GrabCut算法講解分析的很透徹,有文檔,附帶源碼!運行絕對沒有問題。

資源截圖

代碼片段和文件信息

//?WebProjectImage.cpp?:?定義控制臺應用程序的入口點。
//

#include?“stdafx.h“


#include?“opencv2/highgui/highgui.hpp“
#include?“opencv2/imgproc/imgproc.hpp“

#include?
#include?
#include?“math.h“
#include?“highgui.h“

#include?

using?namespace?std;
using?namespace?cv;

void?help()
{
????cout?<ject?in?a?region\n“
???? “and?then?grabcut?will?attempt?to?segment?it?out.\n“
???? “Call:\n“
???? “./grabcut?\n“
???? “\nSelect?a?rectangular?area?around?the?object?you?want?to?segment\n“?<<
????????“\nHot?keys:?\n“
????????“\tESC?-?quit?the?program\n“
????????“\tr?-?restore?the?original?image\n“
????????“\tn?-?next?iteration\n“
????????“\n“
????????“\tleft?mouse?button?-?set?rectangle\n“
????????“\n“
????????“\tCTRL+left?mouse?button?-?set?GC_BGD?pixels\n“
????????“\tSHIFT+left?mouse?button?-?set?CG_FGD?pixels\n“
????????“\n“
????????“\tCTRL+right?mouse?button?-?set?GC_PR_BGD?pixels\n“
????????“\tSHIFT+right?mouse?button?-?set?CG_PR_FGD?pixels\n“?<}

const?Scalar?RED?=?Scalar(00255);
const?Scalar?PINK?=?Scalar(230130255);
const?Scalar?BLUE?=?Scalar(25500);
const?Scalar?LIGHTBLUE?=?Scalar(255255160);
const?Scalar?GREEN?=?Scalar(02550);

const?int?BGD_KEY?=?CV_EVENT_FLAG_CTRLKEY;
const?int?FGD_KEY?=?CV_EVENT_FLAG_SHIFTKEY;

//把comMask賦給binMak
void?getBinMask(?const?Mat&?comMask?Mat&?binMask?)
{
????if(?comMask.empty()?||?comMask.type()!=CV_8UC1?)
????????CV_Error(?CV_StsBadArg?“comMask?is?empty?or?has?incorrect?type?(not?CV_8UC1)“?);
????if(?binMask.empty()?||?binMask.rows!=comMask.rows?||?binMask.cols!=comMask.cols?)
//設置Mat大小★★★★
????????binMask.create(?comMask.size()?CV_8UC1?);
????binMask?=?comMask?&?1;//★★★★很重要
}

class?GCApplication
{
public:
????enum{?NOT_SET?=?0?IN_PROCESS?=?1?SET?=?2?};
????static?const?int?radius?=?2;
????static?const?int?thickness?=?-1;

????void?reset();
????void?setImageAndWinName(?const?Mat&?_image?const?string&?_winName?);
????void?showImage()?const;
????void?mouseClick(?int?event?int?x?int?y?int?flags?void*?param?);
????int?nextIter();
????int?getIterCount()?const?{?return?iterCount;?}
private:
????void?setRectInMask();
????void?setLblsInMask(?int?flags?Point?p?bool?isPr?);

????const?string*?winName;
????const?Mat*?image;
????Mat?mask;
????Mat?bgdModel?fgdModel;

????uchar?rectState?lblsState?prLblsState;
????bool?isInitialized;

????Rect?rect;
????vector?fgdPxls?bgdPxls?prFgdPxls?prBgdPxls;
????int?iterCount;
};

void?GCApplication::reset()
{
????if(?!mask.empty()?)
//mask設定為GC_BGD,GC_FGD,GC_PR_BGD中的一種;
????????mask.setTo(Scalar::all(GC_BGD));
????bgdPxls.clear();?fgdPxls.clear();
????prBgdPxls.clear();??prFgdPxls.clear();

????isInitialized?=?false;
????rectState?=?NOT_SET;
????lblsState?=?NOT_SET;
????prLblsState?=?NOT_SET;
????iterCount?=?0;
}

void?GCApplication::setImageAndWinNa

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????10306??2013-10-10?20:40??WebProjectImage.cpp
?????文件???????21730??2013-09-29?13:51??圖像分割之(一)概述.docx
?????文件??????210190??2013-09-29?21:17??圖像分割之(三)從Graph?Cut到Grab?Cut.docx
?????文件??????176327??2013-09-29?20:35??圖像分割之(二)Graph?Cut(圖割).docx
?????文件???????57335??2013-09-29?13:56??圖像分割之(四)OpenCV的GrabCut函數使用和源碼解讀.docx

評論

共有 條評論