FPR performs programmable filtering on image data. The programmable filter averages image data according to user-specified weights. FPR allows the user to design filters for specific requirements, such as Directional Filters or Laplacian Filters, for example. The filter dimensions must be odd, with acceptable values ranging from 1X1 to 33X33. The user must specify a matrix of real weights to be applied to each pixel within the filter area. Filtered pixel values are the sum of weighted values divided by sum of all filter weights. If the sum of filter weights is zero, the weighted SUM of gray level values in the filter area is computed for the central pixel.