I44 Answer ― 5x5 Neighborhood


void smooth55Image( image img, image smooth )
{
  int r, ri, c, ci, sum, count;
  unsigned char value ;

  /* Find all neighborhood averages */
  for ( r=0; r<img.nrows; r++ )
    for ( c=0; c<img.ncols; c++ )
    {
      sum = 0; count = 0;
      for ( ri= -2; ri<=2; ri++ )
        if ( r+ri >=0 && r+ri < img.nrows )
          for ( ci= -2; ci<=2; ci++ )
            if ( c+ci >=0 && c+ci < img.ncols )
            {
              sum += getPixel( img, r+ri, c+ci );
              count++ ;
            }

      setPixel( smooth, r, c, sum/count );
    }
}