template
void CImageObj::BoxFilter(K** src, T** dst, int r)
{
int w = 2 * r + 1;
int pixCount = w * w;
int nx = m_width;
int ny = m_height;
int i, j, m, n;
for (i = 0; i < ny; ++i)
{
for (j = 0; j < nx; ++j)
{
int k = 0;
double sum = 0.0;
for (m = i - r; m <= i + r; ++m)
{
for (n = j - r; n <= j + r; ++n)
{
if (m < 0 || m >= ny) { k++; continue; }
if (n < 0 || n >= nx) { k++; continue; }
sum += src[m][n];
}
} // 一次窗口滤波
dst[i][j] = sum / (pixCount - k);
}
}
}
void CImageObj::GIF(uchar** guidenceImg, int radius, double eps)