【发布时间】:2013-10-03 12:09:55
【问题描述】:
我想在 Java 中模糊缓冲图像,而不需要特殊的“模糊 api”。 现在我找到了这个page 并写了这段代码:
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;
}
int 矩阵来自这个方法:
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;
}
但它想要工作,怎么了?
谢谢!
更新
问题是,结果不是应该的。 当我有这个模糊矩阵时:
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 当我有这个模糊矩阵时:
float[] blurmatrix = {
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
0.111f, 0.111f, 0.111f,
};
图片被删除。
【问题讨论】:
-
什么是“行不通”?例外?出乎意料的结果?结果与您的预期相比如何? ...
-
对不起,我已经更新了问题
标签: java filtering bufferedimage