亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? graphcut3dconstr.cpp

?? Graph Cut algorithm implementation. Includes MATLAB compiled codes.
?? CPP
字號(hào):

#include "mex.h"
#include "GCoptimization.h"
#include "GraphCut.h"
#include <stdlib.h>
#include <math.h>

/* Defines */
// define A64BITS for compiling on a 64 bits machine...

/*
 * Matlab wrapper for Weksler graph cut implementation
 *
 * usage:
 * [gch] = GraphCut3dConstr(R, C, Z, num_labels, DataCost, SmoothnessCost, [Contrast])
 *
 * Note that data types are crucials!
 * 
 * Inputs:
 *  R, C, Z - size of 3D grid. 
 *  num_labels - number of labels.  
 *  DataCost - of type float, array size [width*height*depth*#labels], the data term for pixel
 *             x,y,z recieving label l is stroed at [(x+y*width+z*width*depth)*#labels + l]
 *  SmoothnessCost - of type float, array size [#labels.^2] the cost between l1 and l2 is
 *                   stored at [l1+l2*#labels] = Vpq(lp,lq)
 *  Contrast - of type float, array size[width*height*depth], the weight Wpq will be determined by the contrast:
 *                  Wpq = exp(-|C(p)-C(q)|)
 *
 * Outputs:
 *  gch - of type int32, graph cut handle - do NOT mess with it!
 */
void mexFunction(
    int		  nlhs, 	/* number of expected outputs */
    mxArray	  *plhs[],	/* mxArray output pointer array */
    int		  nrhs, 	/* number of inputs */
    const mxArray	  *prhs[]	/* mxArray input pointer array */
    )
{
    
    int num_labels;
    Graph::captype *DataCost;
    Graph::captype *SmoothnessCost;
    Graph::captype *Contrast = NULL;
    GCoptimization::LabelType *Labels;
    GCoptimization::PixelType R, C, Z; 
    
    GCoptimization *MyGraph = NULL;
        
    /* check number of inout arguments - must be 6 */
    if ((nrhs != 6)&&(nrhs!=7)) {
        mexErrMsgIdAndTxt("GraphCut:NarginError","Wrong number of input argumnets");
    }
    GetScalar(prhs[0], R);
    GetScalar(prhs[1], C);
    GetScalar(prhs[2], Z);
    GetScalar(prhs[3], num_labels);
    
  
    /* check second input DataCost: must have #labels*height*width elements of type float */
    if ( mxGetNumberOfElements(prhs[4]) != num_labels*R*C*Z ) {
        mexErrMsgIdAndTxt("GraphCut:DataCost",
        "DataCost argument does not contains the right number of elements");
    }
    if (mxGetClassID(prhs[4]) != mxSINGLE_CLASS ) {
        mexErrMsgIdAndTxt("GraphCut:DataCost",
        "DataCost argument is not of type float");
    }
    DataCost = (Graph::captype*)mxGetData(prhs[4]);

    /* check fifth input SmoothnessCost: must have #labels.^2 elements of type float */
    if ( mxGetNumberOfElements(prhs[5]) != num_labels*num_labels ) {
        mexErrMsgIdAndTxt("GraphCut:SmoothnessCost",
        "SmoothnessCost argument does not contains the right number of elements");
    }
    if (mxGetClassID(prhs[5]) != mxSINGLE_CLASS ) {
        mexErrMsgIdAndTxt("GraphCut:SmoothnessCost",
        "SmoothnessCost argument is not of type float");
    }
    SmoothnessCost = (Graph::captype*)mxGetData(prhs[5]);

    if ( nrhs == 7 ) { 
        /* add Contrast cue */
        if ( mxGetNumberOfElements(prhs[6]) != R*C*Z ) {
            mexErrMsgIdAndTxt("GraphCut:SmoothnessCost",
            "Contrast argument does not contains the right number of elements");
        }
        if (mxGetClassID(prhs[6]) != mxSINGLE_CLASS ) {
            mexErrMsgIdAndTxt("GraphCut:SmoothnessCost",
            "Contrast argument is not of type float");
        }
        Contrast = (Graph::captype*)mxGetData(prhs[6]);
        
    }
    /* prepare the output argument */
    if ( nlhs != 1 ) {
        mexErrMsgIdAndTxt("GraphCut:OutputArg","Wrong number of output arguments");
    }
    
    MyGraph = new GCoptimization(R*C*Z, num_labels, SET_ALL_AT_ONCE, SET_ALL_AT_ONCE);
    /* neighborhod setup */
    GCoptimization::PixelType c(0), r(0), z(0), p(0), q(0);
    if (Contrast) {
        for ( r = 0 ; r <= R - 2;  r++ ) {
            for ( c = 0 ; c <= C - 2; c++ ) {
                for ( z = 0 ; z <= Z - 2; z++ ) {
                    /* all nodes with 3 nieghbors */
                    p = r+c*R+z*R*C;
                    q = r+1+c*R+z*R*C;
                    MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
                    q = r+(c+1)*R+z*R*C;
                    MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
                    q = r+c*R+(z+1)*R*C;
                    MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
                }
               /* top of Z has 2 n in c and r */
                p = r+c*R+z*R*C;
                q = r+1+c*R+z*R*C;
                MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
                q = r+(c+1)*R+z*R*C;
                MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
            }
            /* end of c has 2 n in z and r */
            for ( z = 0 ; z <= Z -2 ; z++ ) {
                p = r+c*R+z*R*C;
                q = r+1+c*R+z*R*C;
                MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
                q = r+c*R+(z+1)*R*C;
                MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
            }
            /* end of c abd z has n in r */
            p = r+c*R+z*R*C;
            q = r+1+c*R+z*R*C;
            MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
        }
        /* end of r has n in z and c */
        for ( c = 0 ; c <= C - 2; c++ ) {
            for ( z = 0 ; z <= Z - 2; z++ ) {
                p = r+c*R+z*R*C;
                q = r+c*R+(z+1)*R*C;
                MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
                q = r+(c+1)*R+z*R*C;
                MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
            }
            p = r+c*R+z*R*C;
            q = r+(c+1)*R+z*R*C;
            MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
        }
        for ( z = 0 ; z <= Z - 2; z++ ) {
            p = r+c*R+z*R*C;
            q = r+c*R+(z+1)*R*C;
            MyGraph->setNeighbors(p, q, exp(-fabs(Contrast[p]-Contrast[q])));
        }
        /* end of graph construction with contrast */
    } else {
        for ( r = 0 ; r <= R - 2;  r++ ) {
            for ( c = 0 ; c <= C - 2; c++ ) {
                for ( z = 0 ; z <= Z - 2; z++ ) {
                /* all nodes with 3 nieghbors */
                    MyGraph->setNeighbors(r+c*R+z*R*C,r+1+c*R+z*R*C);
                    MyGraph->setNeighbors(r+c*R+z*R*C,r+(c+1)*R+z*R*C);
                    MyGraph->setNeighbors(r+c*R+z*R*C,r+c*R+(z+1)*R*C);
                }
            /* top of Z has 2 n in c and r */
                MyGraph->setNeighbors(r+c*R+z*R*C,r+1+c*R+z*R*C);
                MyGraph->setNeighbors(r+c*R+z*R*C,r+(c+1)*R+z*R*C);
            }
        /* end of c has 2 n in z and r */
            for ( z = 0 ; z <= Z -2 ; z++ ) {
                MyGraph->setNeighbors(r+c*R+z*R*C,r+1+c*R+z*R*C);
                MyGraph->setNeighbors(r+c*R+z*R*C,r+c*R+(z+1)*R*C);
            }
        /* end of c abd z has n in r */
            MyGraph->setNeighbors(r+c*R+z*R*C,r+1+c*R+z*R*C);
        }
    /* end of r has n in z and c */
        for ( c = 0 ; c <= C - 2; c++ ) {
            for ( z = 0 ; z <= Z - 2; z++ ) {
                MyGraph->setNeighbors(r+c*R+z*R*C,r+c*R+(z+1)*R*C);
                MyGraph->setNeighbors(r+c*R+z*R*C,r+(c+1)*R+z*R*C);
            }
            MyGraph->setNeighbors(r+c*R+z*R*C,r+(c+1)*R+z*R*C);
        }
        for ( z = 0 ; z <= Z - 2; z++ ) {
            MyGraph->setNeighbors(r+c*R+z*R*C,r+c*R+(z+1)*R*C);
        }
    }
    MyGraph->setData(DataCost);
/*    if ( vCue != NULL && vCue != NULL ) 
        MyGraph->setSmoothness(SmoothnessCost, hCue, vCue);
    else*/
    MyGraph->setSmoothness(SmoothnessCost);
    
        
    /* create a container for the pointer */
    int dims[2] = {1,0};
    plhs[0] = mxCreateNumericArray(1, dims, MATLAB_POINTER_TYPE, mxREAL);
    
    GraphHandle* gh;
    gh = (GraphHandle*) mxGetData(plhs[0]);
    *gh = (GraphHandle)(MyGraph);
}
    

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品夜夜夜夜久久| 亚洲一区在线播放| 久久久久9999亚洲精品| 欧美大片日本大片免费观看| 69堂成人精品免费视频| 欧美日本在线一区| 3d动漫精品啪啪一区二区竹菊| 欧美日韩一区精品| 欧美日韩久久不卡| 91精品国产福利在线观看| 91精品国产免费| 日韩欧美一区在线| 精品国产一区二区三区av性色 | 色网站国产精品| 99精品热视频| 在线视频你懂得一区二区三区| 色婷婷综合久久久中文一区二区| 色偷偷久久人人79超碰人人澡| 91麻豆福利精品推荐| 日本伦理一区二区| 欧美日韩免费电影| 日韩午夜小视频| 久久综合九色综合97婷婷| 久久久精品一品道一区| 国产精品免费久久久久| 成人性色生活片免费看爆迷你毛片| 国产一区二区在线免费观看| 国产经典欧美精品| 成人午夜av影视| 色噜噜狠狠成人网p站| 欧美日韩三级在线| 精品国产伦一区二区三区免费| 久久先锋影音av鲁色资源| 中文子幕无线码一区tr| 亚洲另类在线一区| 男人的j进女人的j一区| 国产综合色在线| 99久久久无码国产精品| 欧美中文字幕一区二区三区亚洲| 91精品中文字幕一区二区三区| 欧美精品一区二区三区高清aⅴ | 亚洲伦在线观看| 日韩精品一二三区| 国产成人亚洲综合a∨婷婷| 91原创在线视频| 欧美一级视频精品观看| 国产精品私人影院| 亚洲大片一区二区三区| 国产精选一区二区三区| 在线中文字幕不卡| 精品国精品自拍自在线| 亚洲精品乱码久久久久久黑人 | 色视频成人在线观看免| 日韩精品在线一区二区| 亚洲桃色在线一区| 韩国中文字幕2020精品| 91久久香蕉国产日韩欧美9色| 欧美tickling挠脚心丨vk| 综合激情网...| 精品一区二区日韩| 欧美色区777第一页| 国产欧美日本一区二区三区| 亚洲福利视频三区| 波多野洁衣一区| 日韩精品一区二区三区三区免费| 亚洲欧洲av一区二区三区久久| 男女视频一区二区| 色婷婷精品久久二区二区蜜臂av | 亚洲国产wwwccc36天堂| 国产精品一区二区久久不卡| 欧美少妇一区二区| 国产精品久久久久aaaa樱花| 蜜臀av国产精品久久久久| 日本道在线观看一区二区| 国产欧美日韩视频在线观看| 日韩国产欧美在线视频| 日本精品一区二区三区四区的功能| 久久婷婷色综合| 日本va欧美va瓶| 欧美视频一区二区| 日韩理论片一区二区| 国产成人av一区| 26uuu成人网一区二区三区| 午夜电影网一区| 一本色道久久综合狠狠躁的推荐| 久久久久一区二区三区四区| 日本欧美加勒比视频| 欧美日韩一区二区三区不卡| 亚洲欧美激情在线| av在线播放不卡| 国产喷白浆一区二区三区| 精彩视频一区二区| 欧美一级在线免费| 免费观看在线综合色| 欧美日韩aaa| 亚洲成人av一区二区三区| 色天使久久综合网天天| 亚洲色图在线播放| 99这里只有久久精品视频| 国产精品久久久一区麻豆最新章节| 国产一区二区视频在线播放| 日韩精品一区二区三区视频在线观看 | 一区二区三区四区视频精品免费| 成人av网在线| 国产精品久久免费看| 成人福利在线看| 国产精品久久久久永久免费观看| 大陆成人av片| 国产精品久久久久久一区二区三区| 国产aⅴ精品一区二区三区色成熟| 久久男人中文字幕资源站| 国产精品中文欧美| 日本一区二区三区在线观看| 国产91精品久久久久久久网曝门| 中文字幕不卡的av| 99久久综合精品| 一区二区三区日韩在线观看| 在线观看日韩一区| 午夜成人在线视频| 日韩丝袜美女视频| 国产一区二区美女诱惑| 久久综合九色综合欧美就去吻| 国产精品一区二区久久不卡| 欧美激情中文字幕| 91麻豆自制传媒国产之光| 亚洲综合在线五月| 欧美日韩国产中文| 麻豆一区二区在线| 亚洲国产精品激情在线观看| 99久久夜色精品国产网站| 亚洲线精品一区二区三区八戒| 欧美美女直播网站| 韩国精品免费视频| 中文字幕一区二区三区四区| 欧美午夜理伦三级在线观看| 日韩精品1区2区3区| 欧美精品一区二区三区蜜臀| 波多野结衣亚洲一区| 亚洲一二三四久久| 日韩精品中文字幕一区| 成人av网站在线观看免费| 亚洲成av人片在线观看无码| 欧美不卡一区二区| 91视频一区二区| 美日韩黄色大片| 亚洲丝袜精品丝袜在线| 在线成人免费视频| 国产精品一卡二卡在线观看| 亚洲免费资源在线播放| 日韩一区二区三免费高清| 福利一区二区在线| 亚洲成国产人片在线观看| 国产亚洲欧洲一区高清在线观看| 91蜜桃婷婷狠狠久久综合9色| 日本强好片久久久久久aaa| 国产精品三级久久久久三级| 欧美男生操女生| 丁香婷婷深情五月亚洲| 天天免费综合色| 国产精品久久久久影院| 91麻豆精品91久久久久同性| 成人免费看片app下载| 日韩二区三区在线观看| 国产精品天干天干在观线| 欧美一卡2卡三卡4卡5免费| 99riav一区二区三区| 精品亚洲免费视频| 一区二区在线看| 久久精品一区二区三区四区| 欧美在线观看一区| 成人免费观看av| 日本欧洲一区二区| 亚洲精品你懂的| 欧美激情中文字幕| 日韩免费一区二区三区在线播放| 色婷婷av一区二区三区软件| 国产伦精一区二区三区| 日韩av高清在线观看| 一区二区三区在线视频观看| 国产调教视频一区| 欧美va亚洲va香蕉在线 | 亚洲天堂网中文字| 久久久久久久国产精品影院| 欧美日韩精品电影| 日本高清视频一区二区| 高清在线观看日韩| 国产在线播精品第三| 日韩av一级片| 午夜欧美大尺度福利影院在线看| 中文字幕制服丝袜成人av| 久久精品欧美日韩精品 | 亚洲视频在线观看三级| 国产视频一区二区在线| 2023国产精华国产精品| 日韩午夜av电影| 91精品国产综合久久福利| 欧美日韩亚洲另类| 欧美日韩日日骚| 欧美视频在线一区二区三区 | 婷婷激情综合网|