50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > 高斯模糊java代码_简单的java高斯模糊算法

高斯模糊java代码_简单的java高斯模糊算法

时间:2021-01-07 23:26:56

相关推荐

高斯模糊java代码_简单的java高斯模糊算法

importjava.awt.Color;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;public classTest

{/*** 简单高斯模糊算法

*

*@paramargs

*@throwsIOException [参数说明]

*

*@returnvoid [返回类型说明]

*@exceptionthrows [违例类型] [违例说明]

*@see[类、类#方法、类#成员]*/

public static voidmain(String[] args)throwsIOException

{

BufferedImage img= ImageIO.read(new File("d:\\My Documents\\psb.jpg"));

System.out.println(img);int height =img.getHeight();int width =img.getWidth();int[][] matrix = new int[3][3];int[] values = new int[9];for (int i = 0; i < width; i++)

{for (int j = 0; j < height; j++)

{

readPixel(img, i, j, values);

fillMatrix(matrix, values);

img.setRGB(i, j, avgMatrix(matrix));

}

}

ImageIO.write(img,"jpeg", new File("d:/test.jpg"));//保存在d盘为test.jpeg文件

}private static void readPixel(BufferedImage img, int x, int y, int[] pixels)

{int xStart = x - 1;int yStart = y - 1;int current = 0;for (int i = xStart; i < 3 + xStart; i++)

{for (int j = yStart; j < 3 + yStart; j++)

{int tx =i;if (tx < 0)

{

tx= -tx;

}else if (tx >=img.getWidth())

{

tx=x;

}int ty =j;if (ty < 0)

{

ty= -ty;

}else if (ty >=img.getHeight())

{

ty=y;

}

pixels[current++] =img.getRGB(tx, ty);

}

}

}private static void fillMatrix(int[][] matrix, int... values)

{int filled = 0;for (int i = 0; i < matrix.length; i++)

{int[] x =matrix[i];for (int j = 0; j < x.length; j++)

{

x[j]= values[filled++];

}

}

}private static int avgMatrix(int[][] matrix)

{int r = 0;int g = 0;int b = 0;for (int i = 0; i < matrix.length; i++)

{int[] x =matrix[i];for (int j = 0; j < x.length; j++)

{if (j == 1)

{continue;

}

Color c= newColor(x[j]);

r+=c.getRed();

g+=c.getGreen();

b+=c.getBlue();

}

}return new Color(r / 8, g / 8, b / 8).getRGB();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。