Lines Matching defs:element
71 inline int GetEnergy2(CvTrackingRect** ppNew, const CvTrackingRect* pPrev, CvPoint* ptTempl, CvRect* rTempl, int* element);
711 int element[NUM_FACE_ELEMENTS];
716 element[elem] = i;
720 element[2] = i;
729 cvStartReadSeq( big_face[element[0]].m_seqRects, &reader0 );
730 for (int i0 = 0; i0 < big_face[element[0]].m_seqRects->total && i0 < nElements; i0++)
732 curr_face[element[0]] = (CvTrackingRect*)(reader0.ptr);
733 cvStartReadSeq( big_face[element[1]].m_seqRects, &reader1 );
734 for (int i1 = 0; i1 < big_face[element[1]].m_seqRects->total && i1 < nElements; i1++)
736 curr_face[element[1]] = (CvTrackingRect*)(reader1.ptr);
737 curr_energy = GetEnergy2(curr_face, pTF->face, pTF->ptTempl, pTF->rTempl, element);
750 face[element[0]] = *(new_face[element[0]]);
751 face[element[1]] = *(new_face[element[1]]);
752 // 3 element find by template
753 CvPoint templ_v01 = {pTF->ptTempl[element[1]].x - pTF->ptTempl[element[0]].x, pTF->ptTempl[element[1]].y - pTF->ptTempl[element[0]].y};
754 CvPoint templ_v02 = {pTF->ptTempl[element[2]].x - pTF->ptTempl[element[0]].x, pTF->ptTempl[element[2]].y - pTF->ptTempl[element[0]].y};
755 CvPoint prev_v01 = {pTF->face[element[1]].ptCenter.x - pTF->face[element[0]].ptCenter.x, pTF->face[element[1]].ptCenter.y - pTF->face[element[0]].ptCenter.y};
756 CvPoint prev_v02 = {pTF->face[element[2]].ptCenter.x - pTF->face[element[0]].ptCenter.x, pTF->face[element[2]].ptCenter.y - pTF->face[element[0]].ptCenter.y};
757 CvPoint new_v01 = {new_face[element[1]]->ptCenter.x - new_face[element[0]]->ptCenter.x, new_face[element[1]]->ptCenter.y - new_face[element[0]]->ptCenter.y};
772 face[element[2]].iColor = 0;
773 face[element[2]].iEnergy = 0;
774 face[element[2]].nRectsInThis = 0;
775 face[element[2]].nRectsOnBottom = 0;
776 face[element[2]].nRectsOnLeft = 0;
777 face[element[2]].nRectsOnRight = 0;
778 face[element[2]].nRectsOnTop = 0;
779 face[element[2]].ptCenter.x = new_v02.x + new_face[element[0]]->ptCenter.x;
780 face[element[2]].ptCenter.y = new_v02.y + new_face[element[0]]->ptCenter.y;
781 face[element[2]].r.width = int(double(pTF->rTempl[element[2]].width) / (scale) + 0.5);
782 face[element[2]].r.height = int(double(pTF->rTempl[element[2]].height) / (scale) + 0.5);
783 face[element[2]].r.x = face[element[2]].ptCenter.x - (face[element[2]].r.width + 1) / 2;
784 face[element[2]].r.y = face[element[2]].ptCenter.y - (face[element[2]].r.height + 1) / 2;
820 inline int GetEnergy2(CvTrackingRect** ppNew, const CvTrackingRect* pPrev, CvPoint* ptTempl, CvRect* rTempl, int* element)
822 CvPoint new_v = {ppNew[element[0]]->ptCenter.x - ppNew[element[1]]->ptCenter.x,
823 ppNew[element[0]]->ptCenter.y - ppNew[element[1]]->ptCenter.y};
824 CvPoint prev_v = {pPrev[element[0]].ptCenter.x - pPrev[element[1]].ptCenter.x,
825 pPrev[element[0]].ptCenter.y - pPrev[element[1]].ptCenter.y};
828 double dx = ptTempl[element[0]].x - ptTempl[element[1]].x;
829 double dy = ptTempl[element[0]].y - ptTempl[element[1]].y;
832 double w0 = (double)ppNew[element[0]]->r.width * scale_templ;
833 double h0 = (double)ppNew[element[0]]->r.height * scale_templ;
834 double w1 = (double)ppNew[element
835 double h1 = (double)ppNew[element[1]]->r.height * scale_templ;
837 int energy = ppNew[element[0]]->iEnergy + ppNew[element[1]]->iEnergy +
838 - 2 * (ppNew[element[0]]->nRectsInThis - ppNew[element[1]]->nRectsInThis) +
839 (int)pow(w0 - (double)rTempl[element[0]].width, 2) +
840 (int)pow(h0 - (double)rTempl[element[0]].height, 2) +
841 (int)pow(w1 - (double)rTempl[element[1]].width, 2) +
842 (int)pow(h1 - (double)rTempl[element[1]].height, 2) +