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

資源簡介

Graphcut-源碼及實現,基于opencv實現。可直接運行,其中鼠標左右鍵分別用于選擇正、負種子點。

資源截圖

代碼片段和文件信息

#include?
#include?“gcgraphMy.h“

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

#include?

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

/*
This?section?shows?how?to?use?the?library?to?compute
a?minimum?cut?on?the?following?graph?:

*/
///////////////////////////////////////////////////

#include?

const?int?nDownSample?=?1;
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);
#define?MASK_BG_COLOR???128
#define?MASK_FG_COLOR???255
const?Scalar?FG_MASK_COLOR?=?Scalar(255?255?255);
const?Scalar?BG_MASK_COLOR?=?Scalar(128?128?128);

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

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;
}

static?void?showImageS2(const?Mat&?image?const?string&?winName)
{
????cvResizeWindow(winName.c_str()?image.cols?/?nDownSample?image.rows?/?nDownSample);
????imshow(winName?image);
}

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(int?x?int?y?int?FgPoint);
????void?mouseClick(int?event?int?x?int?y?int?flags?void*?param);
????void?graphConstruct(const?Mat&?img?GCGraphMy&?graph);
????void?estimateSegmentation(GCGraphMy&?graph);
????int?nextIter();
????int?getIterCount()?const?{?return?iterCount;?}
????void?calSeedPHist(const?Mat&?img?const?Mat&?mask);
private:
????void?setRectInMask();
????void?fillSeedToMask(Mat&?mask);
????void?setLblsInMask(int?x?int?y?bool?isFg);
????double?calFgdPrioriCost(Vec3b?&color);
????double?calBgdPrioriCost(Vec3b?&color);
????const?string*?winName;
????const?Mat*?image;
????Mat?mask;
????Mat?imgShowPg;
????Mat?bgdModel?fgdModel;
????double?FgPHist[3][256];
????double?BgPHist[3][256];
????double?gamma;
????double?lambda;
????double?beta;
????Mat?leftW?upleftW?upW?uprightW;
????GCGraphMy?graphMy;
????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));
????????namedWindow(“mask“?0);
????}
????bgdPxls.clear();?fgdPxls.clear();
????prBgdPxls.clear();??prFgdPxls.clear();
????this->im

評論

共有 條評論