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:不要使用嵌套循环(非常慢!!),而是使用颜色矩阵(非常快!!)来获得效果。谢谢你的提示。。我现在要试试:)或者你可以用这个