圆形渐变模糊滤镜

时间:2015-12-12 22:58:24

标签: java image-processing filter pixels

我正在完成一项学校作业,我需要创建一个圆形渐变雾过滤器。我做了一些关于如何模糊图像和研究的研究,我需要获取当前像素周围像素的颜色值,并对它们进行平均以设置模糊图像的新颜色。到目前为止,我只关注模糊方面,我有这个代码:

public void circularGradientBlur()
{
      Pixel regularPixel = null;
      Pixel L_regularPixel = null;
      Pixel R_regularPixel = null;
      Pixel T_regularPixel = null;
      Pixel B_regularPixel = null;
      Pixel blurredPixel = null;
      Pixel pixels[][] = this.getPixels2D();
      for (int row = 2; row < pixels.length; row++)
      {
         for (int col = 2; col < pixels[0].length - 1; col++)
         {
            regularPixel = pixels[row][col];
            if (row != 0 && col != 0 && row != 498 && col != 498)
            {
               L_regularPixel = pixels[row - 1][col];
               R_regularPixel = pixels[row + 1][col];
               T_regularPixel = pixels[row][col - 1];
               B_regularPixel = pixels[row][col + 1];
               blurredPixel.setRed((L_regularPixel.getRed() + R_regularPixel.getRed() + T_regularPixel.getRed() + B_regularPixel.getRed()) / 4);
               blurredPixel.setGreen((L_regularPixel.getGreen() + R_regularPixel.getGreen() + T_regularPixel.getGreen() + B_regularPixel.getGreen()) / 4);
               blurredPixel.setBlue((L_regularPixel.getBlue() + R_regularPixel.getBlue() + T_regularPixel.getBlue() + B_regularPixel.getBlue()) / 4);               
            }
         }
      }   
   }

当我尝试使用此代码时,我在设置新颜色的行上得到NullPointerException - blurredPixel.setRed(),blurredPixel.setGreen(),blurredPixel.setBlue()。这个错误使我感到困惑,因为我有其他类似代码的方法,并且不会抛出此错误。我很感激能得到的任何帮助!

1 个答案:

答案 0 :(得分:0)

您必须创建blurPixel的实例。如果你打电话给塞特犬,它总是为空。