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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cvvidsurv.hpp

?? OpenCV1.0 + C++Builder6 example of finding coners programm. Highlites coners it found in frame.
?? HPP
?? 第 1 頁 / 共 3 頁
字號:
/*M///////////////////////////////////////////////////////////////////////////////////////
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use the software.
//
//
//                        Intel License Agreement
//                For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
//   * Redistribution's of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//   * Redistribution's in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//
//   * The name of Intel Corporation may not be used to endorse or promote products
//     derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/


#ifndef __CVVIDEOSURVEILLANCE_H__
#define __CVVIDEOSURVEILLANCE_H__

/* turn off the functionality until cvaux/src/Makefile.am gets updated */
//#if _MSC_VER >= 1200

#include <stdio.h>

#if _MSC_VER >= 1200 || defined __BORLANDC__
#define cv_stricmp stricmp
#define cv_strnicmp strnicmp
#elif defined __GNUC__
#define cv_stricmp strcasecmp
#define cv_strnicmp strncasecmp
#else
#error Do not know how to make case-insensitive string comparison on this platform
#endif

//struct DefParam;
struct CvDefParam
{
    struct CvDefParam*    next;
    char*               pName;
    char*               pComment;
    double*             pDouble;
    double              Double;
    float*              pFloat;
    float               Float;
    int*                pInt;
    int                 Int;
    char**              pStr;
    char*               Str;
};

class CV_EXPORTS CvVSModule
{
private: /* internal data */
    CvDefParam*   m_pParamList;
    char*       m_pModuleTypeName;
    char*       m_pModuleName;
    char*       m_pNickName;
protected:
    int         m_Wnd;
public: /* constructor and destructor */
    CvVSModule()
    {
        m_pNickName = NULL;
        m_pParamList = NULL;
        m_pModuleTypeName = NULL;
        m_pModuleName = NULL;
        m_Wnd = 0;
        AddParam("DebugWnd",&m_Wnd);
    }
    virtual ~CvVSModule()
    {
        CvDefParam* p = m_pParamList;
        for(;p;)
        {
            CvDefParam* pf = p;
            p=p->next;
            FreeParam(&pf);
        }
        m_pParamList=NULL;
        if(m_pModuleTypeName)free(m_pModuleTypeName);
        if(m_pModuleName)free(m_pModuleName);
    }
private: /* internal functions */
    void    FreeParam(CvDefParam** pp)
    {
        CvDefParam* p = pp[0];
        if(p->Str)free(p->Str);
        if(p->pName)free(p->pName);
        if(p->pComment)free(p->pComment);
        cvFree((void**)pp);
    }
    CvDefParam* NewParam(char* name)
    {
        CvDefParam* pNew = (CvDefParam*)cvAlloc(sizeof(CvDefParam));
        memset(pNew,0,sizeof(CvDefParam));
        pNew->pName = strdup(name);
        if(m_pParamList==NULL)
        {
            m_pParamList = pNew;
        }
        else
        {
            CvDefParam* p = m_pParamList;
            for(;p->next;p=p->next);
            p->next = pNew;
        }
        return pNew;
    };

    CvDefParam* GetParamPtr(int index)
    {
        CvDefParam* p = m_pParamList;
        for(;index>0 && p;index--,p=p->next);
        return p;
    }
    CvDefParam* GetParamPtr(char* name)
    {
        CvDefParam* p = m_pParamList;
        for(;p;p=p->next)
        {
            if(cv_stricmp(p->pName,name)==0) break;
        }
        return p;
    }
protected: /* INTERNAL INTERFACE */
    int  IsParam(char* name)
    {
        return GetParamPtr(name)?1:0;
    };
    void AddParam(char* name, double* pAddr)
    {
        NewParam(name)->pDouble = pAddr;
    };
    void AddParam(char* name, float* pAddr)
    {
        NewParam(name)->pFloat=pAddr;
    };
    void AddParam(char* name, int* pAddr)
    {
        NewParam(name)->pInt=pAddr;
    };
    void AddParam(char* name, char** pAddr)
    {
        CvDefParam* pP = NewParam(name);
        char* p = pAddr?pAddr[0]:NULL;
        pP->pStr = pAddr?pAddr:&(pP->Str);
        if(p)
        {
            pP->Str = strdup(p);
            pP->pStr[0] = pP->Str;
        }
    };
    void AddParam(char* name)
    {
        CvDefParam* p = NewParam(name);
        p->pDouble = &p->Double;
    };
    void CommentParam(char* name, char* pComment)
    {
        CvDefParam* p = GetParamPtr(name);
        if(p)p->pComment = pComment ? strdup(pComment) : 0;
    };
    void SetTypeName(char* name){m_pModuleTypeName = strdup(name);}
    void SetModuleName(char* name){m_pModuleName = strdup(name);}
    void DelParam(char* name)
    {
        CvDefParam* p = m_pParamList;
        CvDefParam* pPrev = NULL;
        for(;p;p=p->next)
        {
            if(cv_stricmp(p->pName,name)==0) break;
            pPrev = p;
        }
        if(p)
        {
            if(pPrev)
            {
                pPrev->next = p->next;
            }
            else
            {
                m_pParamList = p->next;
            }
            FreeParam(&p);
        }
    }/* DelParam */

public: /* EXTERNAL INTERFACE */
    char* GetParamName(int index)
    {
        CvDefParam* p = GetParamPtr(index);
        return p?p->pName:NULL;
    }
    char* GetParamComment(char* name)
    {
        CvDefParam* p = GetParamPtr(name);
        if(p && p->pComment) return p->pComment;
        return NULL;
    }
    double GetParam(char* name)
    {
        CvDefParam* p = GetParamPtr(name);
        if(p)
        {
            if(p->pDouble) return p->pDouble[0];
            if(p->pFloat) return p->pFloat[0];
            if(p->pInt) return p->pInt[0];
        }
        return 0;
    };

    char* GetParamStr(char* name)
    {
        CvDefParam* p = GetParamPtr(name);
        return p?p->Str:NULL;
    }
    void   SetParam(char* name, double val)
    {
        CvDefParam* p = m_pParamList;
        for(;p;p=p->next)
        {
            if(cv_stricmp(p->pName,name) != 0) continue;
            if(p->pDouble)p->pDouble[0] = val;
            if(p->pFloat)p->pFloat[0] = (float)val;
            if(p->pInt)p->pInt[0] = cvRound(val);
        }
    }
    void   SetParamStr(char* name, char* str)
    {
        CvDefParam* p = m_pParamList;
        for(;p;p=p->next)
        {
            if(cv_stricmp(p->pName,name) != 0) continue;
            if(p->pStr)
            {
                if(p->Str)free(p->Str);
                p->Str = NULL;
                if(str)p->Str = strdup(str);
                p->pStr[0] = p->Str;
            }
        }
        /* convert to double and set */
        if(str)SetParam(name,atof(str));
    }
    void TransferParamsFromChild(CvVSModule* pM, char* prefix = NULL)
    {
        char    tmp[1024];
        char*   FN = NULL;
        int i;
        for(i=0;;++i)
        {
            char* N = pM->GetParamName(i);
            if(N == NULL) break;
            FN = N;
            if(prefix)
            {
                strcpy(tmp,prefix);
                strcat(tmp,"_");
                FN = strcat(tmp,N);
            }

            if(!IsParam(FN))
            {
                if(pM->GetParamStr(N))
                {
                    AddParam(FN,(char**)NULL);
                }
                else
                {
                    AddParam(FN);
                }
            }
            if(pM->GetParamStr(N))
            {
                char* val = pM->GetParamStr(N);
                SetParamStr(FN,val);
            }
            else
            {
                double val = pM->GetParam(N);
                SetParam(FN,val);
            }
            CommentParam(FN, pM->GetParamComment(N));
        }/* transfer next param */
    }/* Transfer params */

    void TransferParamsToChild(CvVSModule* pM, char* prefix = NULL)
    {
        char    tmp[1024];
        int i;
        for(i=0;;++i)
        {
            char* N = pM->GetParamName(i);
            if(N == NULL) break;
            if(prefix)
            {
                strcpy(tmp,prefix);
                strcat(tmp,"_");
                strcat(tmp,N);
            }
            else
            {
                strcpy(tmp,N);
            }

            if(IsParam(tmp))
            {
                if(GetParamStr(tmp))
                    pM->SetParamStr(N,GetParamStr(tmp));
                else
                    pM->SetParam(N,GetParam(tmp));
            }
        }/* transfer next param */
        pM->ParamUpdate();
    }/* Transfer params */

    virtual void ParamUpdate(){};
    char*   GetTypeName()
    {
        return m_pModuleTypeName;
    }
    int     IsModuleTypeName(char* name)
    {
        return m_pModuleTypeName?(cv_stricmp(m_pModuleTypeName,name)==0):0;
    }
    char*   GetModuleName()
    {
        return m_pModuleName;
    }
    int     IsModuleName(char* name)
    {
        return m_pModuleName?(cv_stricmp(m_pModuleName,name)==0):0;
    }
    void SetNickName(char* pStr)
    {

        if(m_pNickName)
            free(m_pNickName);
        m_pNickName = NULL;
        if(pStr)
            m_pNickName = strdup(pStr);
    }
    char* GetNickName()
    {
        return m_pNickName ? m_pNickName : (char *)"unknown";
    }
    virtual void SaveState(CvFileStorage*){};
    virtual void LoadState(CvFileStorage*, CvFileNode*){};

    virtual void Release() = 0;
};/* CvVMModule */
void inline cvWriteStruct(CvFileStorage* fs, char* name, void* addr, char* desc, int num=1)
{
    cvStartWriteStruct(fs,name,CV_NODE_SEQ|CV_NODE_FLOW);
    cvWriteRawData(fs,addr,num,desc);
    cvEndWriteStruct(fs);
}
void inline cvReadStructByName(CvFileStorage* fs, CvFileNode* node, char* name, void* addr, char* desc)
{
    CvFileNode* pSeqNode = cvGetFileNodeByName(fs, node, name);
    if(pSeqNode==NULL)
    {
        printf("WARNING!!! Can't read structure %s\n",name);
    }
    else
    {
        if(CV_NODE_IS_SEQ(pSeqNode->tag))
        {
            cvReadRawData( fs, pSeqNode, addr, desc );
        }
        else
        {
            printf("WARNING!!! Structure %s is not sequence and can not be read\n",name);
        }
    }
}


/* FOREGROUND DETECTOR INTERFACE */
class CV_EXPORTS CvFGDetector: public CvVSModule
{
public:
    virtual IplImage* GetMask() = 0;
    /* process current image */
    virtual void    Process(IplImage* pImg) = 0;
    /* release foreground detector */
    virtual void    Release() = 0;
};
inline void cvReleaseFGDetector(CvFGDetector** ppT )
{
    ppT[0]->Release();
    ppT[0] = 0;
}
/* FOREGROUND DETECTOR INTERFACE */

CV_EXPORTS CvFGDetector* cvCreateFGDetectorBase(int type, void *param);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色性网站| 日本中文字幕一区二区视频| 国产精品午夜免费| 亚洲一区在线电影| 国产一区二区按摩在线观看| 91成人免费在线| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲伦理在线精品| 国产精品99久久久久| 欧美日韩国产天堂| ...中文天堂在线一区| 激情都市一区二区| 欧美日本精品一区二区三区| 中文字幕第一区| 久久97超碰色| 91精品国产福利在线观看| 一区二区三区中文在线观看| 成人免费毛片片v| 精品久久国产97色综合| 日韩精品一二三区| 欧美少妇性性性| 亚洲视频一二三| 成人av在线资源网站| 久久久精品日韩欧美| 毛片一区二区三区| 欧美精品第1页| 一区二区三区精品视频在线| 色综合天天综合给合国产| 国产区在线观看成人精品| 国产在线乱码一区二区三区| 欧美大度的电影原声| 天天爽夜夜爽夜夜爽精品视频| 欧洲人成人精品| 一区二区三区在线观看欧美| 色老头久久综合| 玉米视频成人免费看| 欧美午夜不卡在线观看免费| 亚洲综合色在线| 欧美日韩精品欧美日韩精品一综合| 亚洲影视在线观看| 欧美亚洲国产一区二区三区va| 亚洲一区二区三区国产| 欧美性色综合网| 天天色综合天天| 日韩欧美中文字幕制服| 久久精品国产99国产精品| 久久夜色精品国产噜噜av| 国产精品香蕉一区二区三区| 国产成人亚洲综合a∨婷婷| 国内精品视频一区二区三区八戒| 麻豆91在线观看| 香蕉久久夜色精品国产使用方法| 欧美国产日韩亚洲一区| 久久久久国产精品麻豆ai换脸| 亚洲欧美韩国综合色| 亚洲欧美经典视频| 精品粉嫩aⅴ一区二区三区四区 | 日韩精品成人一区二区三区| 91婷婷韩国欧美一区二区| 一区二区三区加勒比av| 91麻豆精品国产91久久久久| 久久er精品视频| 国产精品超碰97尤物18| 91超碰这里只有精品国产| 精品系列免费在线观看| 欧美国产成人在线| 在线免费av一区| 老司机免费视频一区二区 | 国产精品久久毛片| 91污片在线观看| 免费成人av资源网| 中文字幕一区二区三区不卡在线| 欧美午夜视频网站| 国产一区二区三区高清播放| 一区二区三区国产豹纹内裤在线| 欧美xxxxxxxxx| 91香蕉国产在线观看软件| 美国十次了思思久久精品导航| 国产精品九色蝌蚪自拍| 日韩精品一区二区三区中文精品| 成人高清av在线| 无码av中文一区二区三区桃花岛| 国产婷婷色一区二区三区四区 | 国产在线播精品第三| 一区二区在线免费观看| 久久人人97超碰com| 欧美性三三影院| av一区二区三区| 精品一区二区三区久久| 亚洲国产你懂的| 中文字幕一区av| 亚洲精品在线观| 337p亚洲精品色噜噜狠狠| 91玉足脚交白嫩脚丫在线播放| 美女性感视频久久| 亚洲va天堂va国产va久| 亚洲精品国久久99热| 欧美国产精品v| 精品国产乱码久久久久久牛牛| 精品视频1区2区| 99国产精品久久| 成人一级视频在线观看| 狠狠狠色丁香婷婷综合激情| 亚洲第一福利一区| 亚洲精品日韩综合观看成人91| 国产日韩欧美精品在线| 欧美大尺度电影在线| 欧美欧美午夜aⅴ在线观看| 在线视频欧美区| 日本91福利区| 欧美午夜电影一区| 97久久精品人人做人人爽| 国产精品18久久久久久久久久久久 | 欧美日韩高清在线播放| 日本韩国欧美一区二区三区| 国产在线视频不卡二| 国内精品视频一区二区三区八戒| 蜜臀久久99精品久久久久久9| 午夜天堂影视香蕉久久| 亚洲成av人片观看| 亚洲成人在线免费| 午夜伊人狠狠久久| 爽好久久久欧美精品| 天天色综合天天| 日本色综合中文字幕| 老司机免费视频一区二区 | 国产一区二区免费在线| 国产一区二三区| 国产99一区视频免费| 国产99久久久精品| 99国产麻豆精品| 色狠狠av一区二区三区| 欧美日韩精品一区二区| 日韩色在线观看| www久久精品| 日本一区二区三级电影在线观看| 在线观看成人免费视频| 亚洲天堂av老司机| 亚洲欧洲韩国日本视频| 成人做爰69片免费看网站| 国产精品资源在线观看| 成人白浆超碰人人人人| 在线免费观看一区| 日韩精品一区二区三区在线播放| 精品粉嫩超白一线天av| 中文字幕一区二区在线播放| 亚洲国产cao| 免费看欧美女人艹b| 国产成a人亚洲精| 欧美在线观看一区二区| www国产成人| 一区二区三区不卡在线观看| 国产精品电影院| 国产aⅴ综合色| 欧美日韩一区二区三区高清| 欧美挠脚心视频网站| 欧美喷水一区二区| 亚洲色图在线视频| 在线这里只有精品| 在线欧美日韩精品| 日韩精品中文字幕一区 | 午夜精品成人在线视频| 国产精品一卡二| 欧美日韩大陆一区二区| 欧美国产亚洲另类动漫| 婷婷久久综合九色国产成人| 成人一区在线观看| 制服丝袜av成人在线看| 亚洲美女偷拍久久| 韩国理伦片一区二区三区在线播放 | 久久国产精品99精品国产 | 一区二区三区成人| 国产精品18久久久久久久久久久久| 欧美精品乱码久久久久久| 中文字幕日本乱码精品影院| 极品尤物av久久免费看| 欧美日韩免费在线视频| 免费欧美高清视频| 久久久美女艺术照精彩视频福利播放| 久久er精品视频| 日本精品一区二区三区高清 | 亚洲色图一区二区| 国产精品小仙女| 国产视频一区二区在线观看| 中文字幕二三区不卡| 亚洲第一精品在线| 97久久超碰国产精品| 久久久久国产精品麻豆| 蜜桃久久精品一区二区| 欧美日韩免费一区二区三区| 亚洲精品视频在线| 成人福利电影精品一区二区在线观看| 日韩精品一区二区三区视频播放| 视频一区国产视频| 欧美在线不卡视频| 一区二区三区在线视频播放| 91丨porny丨户外露出| 国产精品福利av| 97精品视频在线观看自产线路二| 国产精品国产三级国产aⅴ中文 |