Android 高斯模糊-黑白图像变为红色和橙色

Android 高斯模糊-黑白图像变为红色和橙色,android,image-processing,android-camera,Android,Image Processing,Android Camera,我原以为输出应该仍然是黑白的(应用灰度后的图像),但有模糊效果..我现在被红橙色的图像卡住了。。。有什么建议吗 public void applyGaussianBlur(int[][] rgb){ int kernelWidth = 3, kernelHeight = 3; float kernel[][] = new float[kernelWidth][kernelHeight]; float sigma = 3.5f, radius = 1.0f;

我原以为输出应该仍然是黑白的(应用灰度后的图像),但有模糊效果..我现在被红橙色的图像卡住了。。。有什么建议吗

    public void applyGaussianBlur(int[][] rgb){
    int kernelWidth = 3, kernelHeight = 3;

    float kernel[][] = new float[kernelWidth][kernelHeight];
    float sigma = 3.5f, radius = 1.0f;
    float sum = 0;


    for(int x = 0; x < kernelWidth;x++){
        for(int y = 0; y < kernelHeight; y++){
            kernel[x][y] = (float)((1/(2*radius*sigma*sigma)) * Math.exp((-(x*x+y*y))/(2*sigma*sigma)));
            sum+=kernel[x][y];
        }
    }


    for (int j = 1; j < width-1; j++){
        for (int m = 1; m < height-1;m++){
            sum += (rgb[j-1][m-1] * kernel[0][2]);
            sum += (rgb[j-1][m] * kernel[0][1]);
            sum += (rgb[j-1][m+1] * kernel[0][0]);

            sum += (rgb[j][m-1] * kernel[1][2]);
            sum += (rgb[j][m] * kernel[1][1]);
            sum += (rgb[j][m+1] * kernel[1][0]);

            sum += (rgb[j+1][m-1] * kernel[2][2]);
            sum += (rgb[j+1][m] * kernel[2][1]);
            sum += (rgb[j+1][m+1] * kernel[2][0]);

            rgb[j][m] = Math.round(sum/9);
            sum = 0;
        }
    }
}
public void applyGaussianBlur(int[]rgb){
int kernelWidth=3,kernelHeight=3;
浮点内核[][]=新浮点[kernelWidth][kernelHeight];
浮动西格玛=3.5f,半径=1.0f;
浮点数和=0;
for(int x=0;x
Tip:不要使用嵌套循环(非常慢!!),而是使用颜色矩阵(非常快!!)来获得效果。谢谢你的提示。。我现在要试试:)或者你可以用这个