我想模糊Java中的缓冲图像,没有特殊的“模糊api”。 现在,我发现这个page和编写代码:模糊Java缓冲图像
public int[][] filter(int[][] matrix)
{
float[] blurmatrix = {
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
};
int[][] returnMatrix = new int[matrix.length][matrix[0].length];
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
returnMatrix[i][j]=matrix[i][j];
for(int k=0;k<blurmatrix.length;k++)
{
float blurPixel= blurmatrix[k];
int newPixel= (int) (returnMatrix[i][j]*blurPixel);
returnMatrix[i][j]= newPixel;
}
}
}
return returnMatrix;
}
整型矩阵来自这个方法:
public int[][] getMatrixOfImage(BufferedImage bufferedImage) {
int width = bufferedImage.getWidth(null);
int height = bufferedImage.getHeight(null);
int[][] retrunMatrix = new int[width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
retrunMatrix[i][j] = bufferedImage.getRGB(i, j);
}
}
return retrunMatrix;
}
但想工作,有什么不好?
谢谢!
UPDATE
的proble是,结果是不应该的。 当我有这个blurmatrix:
float[] blurmatrix = {
10.111f, 0.111f, 0.111f,
0.111f, 50.111f, 0.111f,
0.111f, 0.111f, 10.111f,
};
我得到这样的结果:http://img854.imageshack.us/img854/541/2qw7.png 当我有这个blurmatrix:
float[] blurmatrix = {
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
};
图片被删除。
什么是 “行不通”?例外?意外的结果?结果与您期望的结果相比如何? ... – Fildor
对不起,我已更新问题 – Laren0815