高斯模糊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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值