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

資源簡介

grabcut圖像分割代碼,可以連續分割(手動切換圖片進行半自動連續分割),非自動連續分割,需要配置opencv,將要處理的圖片放入data目錄下,要求數字命名的jpg格式(如1.jpg),結果在result目錄下

資源截圖

代碼片段和文件信息

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

#include?“stdafx.h“

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

#include?

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

static?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“
“\tw?-?next?image?and?save?result\n“
“\tb?-?choose?image\n“
“\n“
“\tleft?mouse?button?-?set?rectangle\n“
“\n“
“\tCTRL+left?mouse?button?-?set?GC_BGD?pixels\n“
“\tSHIFT+left?mouse?button?-?set?GC_FGD?pixels\n“
“\n“
“\tCTRL+right?mouse?button?-?set?GC_PR_BGD?pixels\n“
“\tSHIFT+right?mouse?button?-?set?GC_PR_FGD?pixels\n“?<}

const?Scalar?RED?=?Scalar(0?0?255);
const?Scalar?PINK?=?Scalar(230?130?255);
const?Scalar?BLUE?=?Scalar(255?0?0);
const?Scalar?LIGHTBLUE?=?Scalar(255?255?160);
const?Scalar?GREEN?=?Scalar(0?255?0);
Mat?Result;
const?int?BGD_KEY?=?CV_EVENT_FLAG_CTRLKEY;??//Ctrl鍵
const?int?FGD_KEY?=?CV_EVENT_FLAG_SHIFTKEY;?//Shift鍵

static?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)
binMask.create(comMask.size()?CV_8UC1);
binMask?=?comMask?&?1;??//得到mask的最低位實際上是只保留確定的或者有可能的前景點當做mask
}

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.setTo(Scalar::all(GC_BGD));
bgdPxls.clear();?fgdPxls.clear();
prBgdPxls.clear();??prFgdPxls.clear();

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

/*給類的成員變量賦值而已*/
void?GCApplication::setImageAndWinName(const?Mat&?_image?const?string&?_winName)
{
if?(_image.empty()?||?_winName.empty())
return;
image?=?&_image;
winName?=?&_winName;
mask.create(image->size()?CV_8UC

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????565??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.Build.CppClean.log

?????文件????????210??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.log

?????文件????1638400??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.pch

?????文件???????1550??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.tlog\cl.command.1.tlog

?????文件???????2904??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.tlog\CL.read.1.tlog

?????文件???????1146??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.tlog\CL.write.1.tlog

?????文件????????180??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.tlog\grabcut.lastbuildstate

?????文件??????????0??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\grabcut.tlog\unsuccessfulbuild

?????文件??????11660??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\stdafx.obj

?????文件??????52224??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\vc120.idb

?????文件?????143360??2018-10-09?14:58??grabcut?-連續處理\grabcut\grabcut\Debug\vc120.pdb

?????文件???????9707??2018-12-07?16:00??grabcut?-連續處理\grabcut\grabcut\grabcut.cpp

?????文件???????4905??2018-10-09?15:01??grabcut?-連續處理\grabcut\grabcut\grabcut.vcxproj

?????文件???????1314??2018-10-09?14:54??grabcut?-連續處理\grabcut\grabcut\grabcut.vcxproj.filters

?????文件????????165??2018-10-09?14:54??grabcut?-連續處理\grabcut\grabcut\grabcut.vcxproj.user

?????文件???????1096??2018-10-09?15:04??grabcut?-連續處理\grabcut\grabcut\PropertySheet.props

?????文件???????1510??2018-10-09?14:54??grabcut?-連續處理\grabcut\grabcut\ReadMe.txt

?????文件???????1039??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.Build.CppClean.log

?????文件????????174??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.log

?????文件????1255017??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.obj

?????文件????1638400??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.pch

?????文件???????1622??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\cl.command.1.tlog

?????文件??????16328??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\CL.read.1.tlog

?????文件???????1068??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\CL.write.1.tlog

?????文件????????185??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\grabcut.lastbuildstate

?????文件???????2390??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\link.command.1.tlog

?????文件???????5794??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\link.read.1.tlog

?????文件????????600??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\grabcut.tlog\link.write.1.tlog

?????文件??????30907??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\stdafx.obj

?????文件?????684032??2018-11-29?21:45??grabcut?-連續處理\grabcut\grabcut\Release\vc120.pdb

............此處省略36個文件信息

評論

共有 條評論