static void _computeGradientSum( _KLT_FloatImage gradx1, /* gradient images */ _KLT_FloatImage grady1, _KLT_FloatImage gradx2, _KLT_FloatImage grady2, float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ int width, int height, /* size of window */ _FloatWindow gradx, /* output */ _FloatWindow grady) /* " */ { register int hw = width/2, hh = height/2; float g1, g2; register int i, j; /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, gradx1); g2 = _interpolate(x2+i, y2+j, gradx2); *gradx++ = g1 + g2; g1 = _interpolate(x1+i, y1+j, grady1); g2 = _interpolate(x2+i, y2+j, grady2); *grady++ = g1 + g2; } }
static Evas_Real _noise(Evas_Real x, Evas_Real y) { Evas_Real ix = (int)(x); Evas_Real fx = x - ix; Evas_Real iy = (int)(y); Evas_Real fy = y - iy; Evas_Real v1 = _smooth(ix, iy); Evas_Real v2 = _smooth(ix + 1, iy); Evas_Real v3 = _smooth(ix, iy + 1); Evas_Real v4 = _smooth(ix + 1, iy + 1); Evas_Real i1 = _interpolate(v1, v2, fx); Evas_Real i2 = _interpolate(v3, v4, fx); return _interpolate(i1, i2, fy); }
static void _computeIntensityDifference( _KLT_FloatImage img1, /* images */ _KLT_FloatImage img2, float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ int width, int height, /* size of window */ _FloatWindow imgdiff) /* output */ { register int hw = width/2, hh = height/2; float g1, g2; register int i, j; /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, img1); g2 = _interpolate(x2+i, y2+j, img2); *imgdiff++ = g1 - g2; } }
static void _am_getGradientWinAffine( _KLT_FloatImage in_gradx, _KLT_FloatImage in_grady, float x, float y, /* center of window*/ float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ int width, int height, /* size of window */ _FloatWindow out_gradx, /* output */ _FloatWindow out_grady) /* output */ { register int hw = width/2, hh = height/2; register int i, j; float mi, mj; /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { mi = Axx * i + Axy * j; mj = Ayx * i + Ayy * j; *out_gradx++ = _interpolate(x+mi, y+mj, in_gradx); *out_grady++ = _interpolate(x+mi, y+mj, in_grady); } }
static void _computeIntensityDifferenceLightingInsensitive( _KLT_FloatImage img1, /* images */ _KLT_FloatImage img2, float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ int width, int height, /* size of window */ _FloatWindow imgdiff) /* output */ { register int hw = width/2, hh = height/2; float g1, g2, sum1_squared = 0, sum2_squared = 0; register int i, j; float sum1 = 0, sum2 = 0; float mean1, mean2,alpha,belta; /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, img1); g2 = _interpolate(x2+i, y2+j, img2); sum1 += g1; sum2 += g2; sum1_squared += g1*g1; sum2_squared += g2*g2; } mean1=sum1_squared/(width*height); mean2=sum2_squared/(width*height); alpha = (float) sqrt(mean1/mean2); mean1=sum1/(width*height); mean2=sum2/(width*height); belta = mean1-alpha*mean2; for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, img1); g2 = _interpolate(x2+i, y2+j, img2); *imgdiff++ = g1- g2*alpha-belta; } }
static void _am_computeIntensityDifferenceAffine( _KLT_FloatImage img1, /* images */ _KLT_FloatImage img2, float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ int width, int height, /* size of window */ _FloatWindow imgdiff) /* output */ { register int hw = width/2, hh = height/2; float g1, g2; register int i, j; float mi, mj; /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, img1); mi = Axx * i + Axy * j; mj = Ayx * i + Ayy * j; g2 = _interpolate(x2+mi, y2+mj, img2); *imgdiff++ = g1 - g2; } }
double IdwInterpolator::_estimateError(unsigned int index) const { const DataFrame& df = *_df; const vector<double>& uut = df.getDataVector(index); const vector<double>& predicted = _interpolate(uut, index); double result = 0.0; for (size_t j = 0; j < predicted.size(); j++) { double diff = uut[_depColumns[j]] - predicted[j]; result += diff * diff; } result = sqrt(result); return result; }
static void _am_computeAffineMappedImage( _KLT_FloatImage img, /* images */ float x, float y, /* center of window */ float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */ int width, int height, /* size of window */ _FloatWindow imgdiff) /* output */ { register int hw = width/2, hh = height/2; register int i, j; float mi, mj; /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { mi = Axx * i + Axy * j; mj = Ayx * i + Ayy * j; *imgdiff++ = _interpolate(x+mi, y+mj, img); } }
/*-------------------------------------------------------------------- FUNCTION: RenderCaptionBar(); RETURNS: <void> PURPOSE: Paints the caption bar into a memory dc. --------------------------------------------------------------------*/ void CTreePropertySheet::RenderCaptionBar() { if(!m_bCaptionBarInvalidated) return; m_bCaptionBarInvalidated=false; CSize m_szCaptionBar=m_rcCaptionBar.Size(); // Adjust memory DCs' size m_cCaptionBarDC.FitInto(m_szCaptionBar.cx,m_szCaptionBar.cy); int x; CPen *pOldPen,cNullPen; CBrush *pOldBrush; cNullPen.CreateStockObject(NULL_PEN); pOldPen =m_cCaptionBarDC.SelectObject(&cNullPen); pOldBrush =m_cCaptionBarDC.GetCurrentBrush(); for(x=0;x<m_szCaptionBar.cx;x++) { COLORREF clrCurrent=_interpolate( m_clrCaptionLeft, m_clrCaptionRight, x, m_szCaptionBar.cx); CBrush cBrush(clrCurrent); m_cCaptionBarDC.SelectObject(&cBrush); m_cCaptionBarDC.Rectangle(x,0,x+2,m_szCaptionBar.cy+1); m_cCaptionBarDC.SelectObject(pOldBrush); } if(m_nCaptionBorder==tps_capborder_line) { m_cCaptionBarDC.Draw3dRect( 0,0,m_szCaptionBar.cx,m_szCaptionBar.cy, m_clrCaptionBorderTopLeft, m_clrCaptionBorderBottomRight); } m_cCaptionBarDC.SelectObject(pOldPen); }
static void _computeGradientSumLightingInsensitive( _KLT_FloatImage gradx1, /* gradient images */ _KLT_FloatImage grady1, _KLT_FloatImage gradx2, _KLT_FloatImage grady2, _KLT_FloatImage img1, /* images */ _KLT_FloatImage img2, float x1, float y1, /* center of window in 1st img */ float x2, float y2, /* center of window in 2nd img */ int width, int height, /* size of window */ _FloatWindow gradx, /* output */ _FloatWindow grady) /* " */ { register int hw = width/2, hh = height/2; float g1, g2, sum1_squared = 0, sum2_squared = 0; register int i, j; float sum1 = 0, sum2 = 0; float mean1, mean2, alpha; for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, img1); g2 = _interpolate(x2+i, y2+j, img2); sum1_squared += g1; sum2_squared += g2; } mean1 = sum1_squared/(width*height); mean2 = sum2_squared/(width*height); alpha = (float) sqrt(mean1/mean2); /* Compute values */ for (j = -hh ; j <= hh ; j++) for (i = -hw ; i <= hw ; i++) { g1 = _interpolate(x1+i, y1+j, gradx1); g2 = _interpolate(x2+i, y2+j, gradx2); *gradx++ = g1 + g2*alpha; g1 = _interpolate(x1+i, y1+j, grady1); g2 = _interpolate(x2+i, y2+j, grady2); *grady++ = g1+ g2*alpha; } }
const vector<double>& IdwInterpolator::interpolate(const vector<double>& point) const { return _interpolate(point, -1); }