You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
661 B
36 lines
661 B
template <class T> void MRFEnergy<T>::SetMonotonicTrees() |
|
{ |
|
Node* i; |
|
MRFEdge* e; |
|
|
|
if (!m_isEnergyConstructionCompleted) |
|
{ |
|
CompleteGraphConstruction(); |
|
} |
|
|
|
for (i=m_nodeFirst; i; i=i->m_next) |
|
{ |
|
REAL mu; |
|
|
|
int nForward = 0, nBackward = 0; |
|
for (e=i->m_firstForward; e; e=e->m_nextForward) |
|
{ |
|
nForward ++; |
|
} |
|
for (e=i->m_firstBackward; e; e=e->m_nextBackward) |
|
{ |
|
nBackward ++; |
|
} |
|
int ni = (nForward > nBackward) ? nForward : nBackward; |
|
|
|
mu = (REAL)1 / ni; |
|
for (e=i->m_firstBackward; e; e=e->m_nextBackward) |
|
{ |
|
e->m_gammaBackward = mu; |
|
} |
|
for (e=i->m_firstForward; e; e=e->m_nextForward) |
|
{ |
|
e->m_gammaForward = mu; |
|
} |
|
} |
|
}
|
|
|