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

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

?? contehmm.cpp

?? 基于隱馬爾可夫模型的人臉識別源代碼,是作模式識別的最好學(xué)習(xí)代碼
?? CPP
字號:
/*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*/// ContEHMM.cpp: implementation of the CContEHMM class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HMMDemo.h"
#include "ContEHMM.h"
#include <assert.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CContEHMM::CContEHMM()
{
    m_hmm = NULL;
    m_vectSize = 0;
}

CContEHMM::~CContEHMM()
{
    if (m_hmm) cvRelease2DHMM( &m_hmm );  
    m_vectSize = 0;

}

bool CContEHMM::CreateHMM( int* num_states, int* num_mix, int vect_size )
{
    if (m_hmm) cvRelease2DHMM( &m_hmm );
    m_hmm = 0;

    m_hmm = cvCreate2DHMM( num_states, num_mix, vect_size ); 
    
    m_vectSize = vect_size;
    return true;
    
    //else return false;
}


bool CContEHMM::Save( const char* filename )
{
    FILE* file;

    if (!m_hmm) return false;

    file = fopen( filename, "wt" );

    if (!file) return false;


    // write topology
    fprintf(file, "%s %d\n", "<NumSuperStates>", m_hmm->num_states );
    fprintf(file, "%s ", "<NumStates>");
    for( int i = 0; i < m_hmm->num_states; i++ )
    {
        fprintf(file, "%d ", m_hmm->u.ehmm[i].num_states );
    }
    fprintf(file, "\n");

    fprintf(file, "%s ", "<NumMixtures>");
    for( i = 0; i < m_hmm->num_states; i++ )
    {
        CvEHMM* ehmm = &(m_hmm->u.ehmm[i]);

        for( int j = 0; j < ehmm->num_states; j++ )
        {
            fprintf(file, "%d ", ehmm->u.state[j].num_mix );
        }
    }
    fprintf(file, "\n");

    fprintf(file, "%s %d\n", "<VecSize>", m_vectSize);

    //consequently write all hmms
    CvEHMM* hmm = m_hmm;
    for( i = 0; i < m_hmm->num_states + 1; i++ )
    {
        if (hmm->level == 0 )
            fprintf(file, "%s\n", "<BeginEmbeddedHMM>");
        else
            fprintf(file, "%s\n", "<BeginExternalHMM>");

        fprintf(file, "%s %d\n", "<NumStates>", hmm->num_states);

        if (hmm->level == 0 )
        {
            for ( int j = 0; j < hmm->num_states; j++)
            {
                CvEHMMState* state = &(hmm->u.state[j]);

                fprintf(file, "%s %d\n", "<State>", j);
                fprintf(file, "%s %d\n", "<NumMixes>", state->num_mix);

                float* mu = state->mu;
                float* inv_var = state->inv_var;

                for( int m = 0; m < state->num_mix; m++)
                {
                    fprintf(file, "%s %d %s %f\n", "<Mixture>", m, "<Weight>", state->weight[m] );
                    fprintf(file, "%s\n", "<Mean>");

                    for (int k = 0; k < m_vectSize; k++)
                    {  
                        fprintf(file, "%f ", mu[0]); 
                        mu++;
                    }            
                    
                    fprintf(file, "\n");
                    fprintf(file, "%s\n", "<Inverted_Deviation>");
                    
                    for (k = 0; k < m_vectSize; k++)
                    {
                        fprintf(file, "%f ", inv_var[0]);
                        inv_var++;
                    }
                    fprintf(file, "\n");

                    fprintf(file, "%s %f\n", "<LogVarVal>", state->log_var_val[m] );
                    

                }
            }
        }

        //write the transition probability matrix
        fprintf(file, "%s\n", "<TransP>" ); 
        float* prob = hmm->transP;

        for (int j = 0; j < hmm->num_states; j++)
        {
            for (int k = 0; k < hmm->num_states; k++)
            {
                fprintf(file, "%f ", *prob);
                prob++;
            }            
            fprintf(file, "\n");
        }

        if( hmm->level == 0 )
            fprintf(file, "%s\n", "<EndEmbeddedHMM>");
        else
            fprintf(file, "%s\n", "<EndExternalHMM>");

        hmm = &(m_hmm->u.ehmm[i]);
    }            
    fclose(file);
    return true;
} 

bool CContEHMM::Load( const char* filename )
{
    FILE* file;
    int num_states[128];
    int num_mix[128];
    char temp_char[128];

    if (m_hmm) cvRelease2DHMM( &m_hmm);

    file = fopen( filename, "rt" );

    if (!file) return false;

    // read topology
    fscanf(file, "%s %d\n", temp_char, num_states);
    fscanf(file, "%s ", temp_char); 
    for( int i = 0; i < num_states[0]; i++ )
    {
        fscanf(file, "%d ", num_states + i + 1 );
    }
    fscanf(file, "\n");
    
    //compute total number of internal states
    int total_states = 0;
    for( i = 0; i < num_states[0]; i++ )
    {
        total_states += num_states[i+1];
    }
    
    //read number of mixtures
    fscanf(file, "%s ", temp_char);
    for( i = 0; i < total_states; i++ )
    {
        fscanf(file, "%d ", &num_mix[i] );
    }
    fscanf(file, "\n");

    fscanf(file, "%s %d\n", temp_char, &m_vectSize);

    m_hmm = cvCreate2DHMM( num_states, num_mix, m_vectSize);

 
    //create HMM with known parameters
//!!!    cvCreate2DHMM( &m_hmm, num_states, num_mix, m_vectSize);
    if (!m_hmm ) return false;

    //consequently read all hmms
    CvEHMM* hmm = m_hmm;
    for( i = 0; i < num_states[0]+1; i++ )
    {
        fscanf(file, "%s\n", temp_char);
        int temp_int;
        fscanf(file, "%s %d\n", temp_char , &temp_int);  assert(temp_int==num_states[i]); 

        if ( i!= 0 )
        {
            for (int j = 0; j < num_states[i]; j++)
            {
                CvEHMMState* state = &(hmm->u.state[j]);

                fscanf(file, "%s %d\n", temp_char, &temp_int); assert(temp_int == j);

                fscanf(file, "%s %d\n", temp_char, &temp_int); assert(temp_int == state->num_mix);

                float* mu = state->mu;
                float* inv_var = state->inv_var;

                for( int m = 0; m < state->num_mix; m++)
                {
                    int temp_int;
                    fscanf(file, "%s %d %s %f\n", temp_char, &temp_int, temp_char, &(state->weight[m]) );
                    assert( temp_int == m );
                    fscanf(file, "%s\n", temp_char );

                    for (int k = 0; k < m_vectSize; k++)
                    {  
                        fscanf(file, "%f ", mu); 
                        mu++;
                    }            
                    
                    fscanf(file, "\n");
                    fscanf(file, "%s\n", temp_char);
                    
                    for (k = 0; k < m_vectSize; k++)
                    {
                        fscanf(file, "%f ", inv_var);
                        inv_var++;
                    }
                    fscanf(file, "\n");

                    fscanf(file, "%s %f\n", temp_char, &(state->log_var_val[m]) );
                    
                }
            }
        }

        //read the transition probability matrix
        fscanf(file, "%s\n", temp_char ); 
        float* prob = hmm->transP;

        for (int j = 0; j < hmm->num_states; j++)
        {
            for (int k = 0; k < hmm->num_states; k++)
            {
                fscanf(file, "%f ", prob);
                prob++;
            }            
            fscanf(file, "\n");
        }

        fscanf( file, "%s\n", temp_char );

        hmm = &(m_hmm->u.ehmm[i]);
    }
    fclose(file); 
    return true;
}
    
BOOL CContEHMM::Release()
{
    if (m_hmm)
    {
        cvRelease2DHMM( &m_hmm ); 
        m_hmm = 0;
    }

    return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费视频中文字幕| 一本久道中文字幕精品亚洲嫩| 欧美日韩中文精品| 亚洲国产人成综合网站| 欧美日韩国产免费一区二区| 亚洲成av人片一区二区| 日韩美女视频一区二区在线观看| 韩国理伦片一区二区三区在线播放| 久久久久国产精品麻豆| av欧美精品.com| 亚洲国产裸拍裸体视频在线观看乱了| 欧美午夜精品久久久| 麻豆精品在线视频| 久久久高清一区二区三区| 成人91在线观看| 亚洲国产乱码最新视频| 欧美电影在线免费观看| 欧美精品三级在线观看| 精品一区二区在线看| 中文成人av在线| 欧洲精品一区二区三区在线观看| 日韩av不卡一区二区| 国产偷v国产偷v亚洲高清| 色琪琪一区二区三区亚洲区| 麻豆国产欧美一区二区三区| 国产精品免费网站在线观看| 欧美日韩视频在线观看一区二区三区| 久久精品av麻豆的观看方式| 国产精品欧美精品| 欧美日韩综合不卡| 成人一区在线观看| 午夜精品福利一区二区三区蜜桃| 久久精子c满五个校花| 欧美日韩国产首页| 不卡在线视频中文字幕| 日韩精品每日更新| 亚洲美女区一区| 精品国精品国产| 欧美性做爰猛烈叫床潮| 国产不卡一区视频| 六月丁香婷婷色狠狠久久| 亚洲欧洲中文日韩久久av乱码| 日韩欧美成人激情| 欧美丝袜丝nylons| 91小视频在线| 国产成人精品在线看| 青青青伊人色综合久久| 日韩一区有码在线| 国产视频一区二区在线| 日韩亚洲欧美在线观看| 日本电影欧美片| 成人妖精视频yjsp地址| 久久精品国产精品亚洲综合| 亚洲一区电影777| 国产精品国产三级国产aⅴ原创| 欧美tk—视频vk| 欧美美女bb生活片| 欧美中文字幕一区二区三区亚洲| 国产91精品久久久久久久网曝门| 蜜桃在线一区二区三区| 午夜精品久久久久久久99水蜜桃| 亚洲私人黄色宅男| 亚洲国产经典视频| 精品久久久久久久久久久久久久久| 欧美精品九九99久久| 欧美视频一区二区三区四区| 色综合色综合色综合| aaa国产一区| 成人av免费网站| eeuss鲁片一区二区三区| 国产成人在线视频网站| 国产寡妇亲子伦一区二区| 国产在线视频不卡二| 激情伊人五月天久久综合| 日本一区中文字幕| 免费成人av在线播放| 青青国产91久久久久久 | 国产在线不卡一区| 久久激五月天综合精品| 男男视频亚洲欧美| 另类调教123区| 久久99九九99精品| 国产精品1区2区| 国产成人在线观看免费网站| 高清beeg欧美| 色综合亚洲欧洲| 欧美三级资源在线| 91精品国产综合久久福利软件| 在线不卡中文字幕| 精品国产污污免费网站入口| 国产肉丝袜一区二区| 国产精品乱码人人做人人爱 | 亚洲三级小视频| 亚洲美女淫视频| 日欧美一区二区| 精品一区二区三区免费| 国产成人av一区二区| 不卡的电影网站| 欧美日韩国产综合草草| 日韩一级黄色片| 欧美激情一区二区三区在线| 亚洲丝袜精品丝袜在线| 香蕉成人啪国产精品视频综合网| 蜜臀久久99精品久久久画质超高清| 国产精品一二三四| 色噜噜狠狠色综合中国| 91精品欧美一区二区三区综合在| 久久美女艺术照精彩视频福利播放| 国产女人18水真多18精品一级做| 亚洲免费电影在线| 99免费精品视频| 欧美三级在线看| 久久综合中文字幕| 亚洲人成伊人成综合网小说| 视频在线观看国产精品| 国产91精品免费| 欧美日韩国产免费一区二区 | 久久久久久久综合色一本| 亚洲欧洲av一区二区三区久久| 午夜精品aaa| 成人黄色av网站在线| 欧美挠脚心视频网站| 中文无字幕一区二区三区| 午夜精品视频在线观看| 成人91在线观看| 日韩一级二级三级精品视频| 中文字幕亚洲区| 精品亚洲aⅴ乱码一区二区三区| 色综合av在线| 久久久久久免费| 日韩av电影免费观看高清完整版 | 色视频欧美一区二区三区| 精品久久久久一区| 一区二区高清免费观看影视大全| 精品伊人久久久久7777人| 欧美色综合天天久久综合精品| 久久免费看少妇高潮| 日精品一区二区| 色综合久久综合网97色综合| 久久精品人人做人人爽人人| 日韩激情一二三区| 在线亚洲免费视频| 亚洲欧美在线aaa| 国产美女在线精品| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区四区高清精品免费观看 | 在线视频综合导航| 国产精品乱人伦| 粉嫩久久99精品久久久久久夜| 欧美电视剧免费全集观看| 天天综合色天天| 欧美亚洲高清一区二区三区不卡| 专区另类欧美日韩| 不卡视频一二三四| 国产精品水嫩水嫩| 国产激情一区二区三区四区| 精品欧美一区二区在线观看| 欧美aa在线视频| 欧美一区二区在线免费播放| 香蕉av福利精品导航| 欧美日韩精品欧美日韩精品| 亚洲一二三专区| 在线中文字幕一区二区| 一二三区精品视频| 欧美在线free| 亚洲chinese男男1069| 欧美色网站导航| 日韩国产一区二| 日韩一级片网站| 国内国产精品久久| 久久久精品免费免费| 成人手机电影网| 亚洲欧美日韩中文播放 | 亚洲午夜激情av| 欧美午夜不卡视频| 日韩精品视频网站| 日韩欧美久久一区| 国产精品一区2区| 国产精品成人午夜| 欧亚一区二区三区| 日韩精品亚洲一区| 久久久综合网站| 99久久99久久综合| 亚洲愉拍自拍另类高清精品| 欧美日韩黄色一区二区| 麻豆91在线观看| 欧美激情一区二区三区在线| 91香蕉视频在线| 日韩黄色在线观看| 久久久久久久综合狠狠综合| a4yy欧美一区二区三区| 亚洲高清视频中文字幕| 欧美成人国产一区二区| 成人免费视频免费观看| 亚洲精品国产精华液| 日韩欧美一二三| 91在线观看视频| 日本欧美久久久久免费播放网| 国产日韩欧美精品在线| 在线欧美日韩精品|