www.pudn.com > FatRec001.rar > LikelyHood.cpp
//////////////////////////////////////////////////////////////////////
// LikelyHood.cpp: 类CLikelyHood的接口
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "FatRec.h"
#include "LikelyHood.h"
//////////////////////////////////////////////////////////////////////
// 构造函数/析构函数
//////////////////////////////////////////////////////////////////////
CLikelyHood::CLikelyHood()
{
m_pLikeliHoodArray = NULL;
m_pBinaryArray = NULL;
bmean = B_Mean;
rmean = R_Mean;
brcov[0][0] = Brcov00;
brcov[0][1] = Brcov01;
brcov[1][0] = Brcov10;
brcov[1][1] = Brcov11;
}
//////////////////////////////////////////////////////////////////////
//构造函数:
//参数: source-输入图像数据
// width-图像宽度
// height-图像高度
//////////////////////////////////////////////////////////////////////
CLikelyHood::CLikelyHood(RGBQUAD ** source,int width,int height)
{
int i;
bmean = B_Mean;
rmean = R_Mean;
brcov[0][0] = Brcov00;
brcov[0][1] = Brcov01;
brcov[1][0] = Brcov10;
brcov[1][1] = Brcov11;
m_nWidth = width;
m_nHeight= height;
m_bLikeliHoodReady = false;
m_bBinaryReady = false;
//初始化各数组
m_pSourceData = source;
m_pLikeliHoodArray = new double*[height];
for(i=0;i max)
max = m_pLikeliHoodArray[i][j];
for(i=0; i=0;k--)
{
double sum = 0;
for(i=0; ik*0.1+0.05)
m_pBinaryArray[i][j] = 1;
else
m_pBinaryArray[i][j] = 0;
sum += (m_pBinaryArray[i][j]-temp[i][j]);
}
if(sum < min)
{
min = sum;
index = 6-k;
}
for(i=0; ioptimalThreshold)
m_pBinaryArray[i][j] = 1;
else
m_pBinaryArray[i][j] = 0;
}
if(temp!=NULL)
{
for(int i=0;i<=m_nHeight-1;i++)
if(temp[i]!=NULL) delete temp[i];
delete temp;
}
m_bBinaryReady = true;
return true;
}