我在android中进行图像处理,例如模糊效果和圆形图像。
我的目标是在特定点和周围模糊图像。我可以使用Gaussian Blur和ConvolutionMatrix对整个图像进行模糊效果。
public static Bitmap applyGaussianBlur(Bitmap src) {
double[][] GaussianBlurConfig = new double[][] { { 1, 2, 1 }, { 2, 4, 2 }, { 1, 2, 1 } };
ConvolutionMatrix convMatrix = new ConvolutionMatrix(3);
convMatrix.applyConfig(GaussianBlurConfig);
convMatrix.Factor = 16;
convMatrix.Offset = 0;
return ConvolutionMatrix.computeConvolution3x3(src, convMatrix);
}
任何人都可以给我一个想法,在图像中的特定点做模糊效果吗?
答案 0 :(得分:0)
我其实只是回答了类似的事情。
Try doing the inverse of this.
我认为您要做的是创建原始图像的两个副本。一个很清楚,一个是模糊的(使用你想要的任何过滤器)。然后,对于要模糊的区域中的所有像素,将其值从模糊图像复制到清晰图像。
单独对所有像素进行模糊适配可能会浪费您的时间。除非你试图做一些奇特的事情(比如在链接中),否则做一次并将其用作一种查找表。
但是,由于您是在移动设备上执行此操作,因此可能需要执行一些特殊的内存管理。在这种情况下,获取原始图像的裁剪版本(尺寸略大于模糊区域)并仅模糊该子图像。然后跟踪子图像中的哪些像素与原始像素中的哪些像素相对应,并将这些值复制到项目中,或者复制适合您项目的任何像素。