当前位置: 首页 > 知识库问答 >
问题:

android噪声对位图的影响

糜单弓
2023-03-14

我正在写一些函数来添加位图上的噪声效果。我发现了类似的问题:在绘图中添加噪波效果

位图输出位图=位图。创建位图(bitmap.getWidth(),位图。getHeight(),位图。配置。ARGB_8888);

    BitmapShader shader = new BitmapShader (bitmap,  TileMode.REPEAT, TileMode.REPEAT);

    Paint paint = new Paint();
    paint.setShader(shader);

    Canvas c = new Canvas(outputBitmap);
    c.drawBitmap(bitmap, 0, 0, paint);

我应该如何添加滤色器才能得到这样的结果?你能提供一些代码吗?

共有1个答案

程阳平
2023-03-14

我建议使用此代码。

public static final int COLOR_MIN = 0x00;
public static final int COLOR_MAX = 0xFF;

public static Bitmap applyFleaEffect(Bitmap source) {
    // get image size
    int width = source.getWidth();
    int height = source.getHeight();
    int[] pixels = new int[width * height];
    // get pixel array from source
    source.getPixels(pixels, 0, width, 0, 0, width, height);
    // a random object
    Random random = new Random();

    int index = 0;
    // iteration through pixels
    for(int y = 0; y < height; ++y) {
        for(int x = 0; x < width; ++x) {
            // get current index in 2D-matrix
            index = y * width + x;
            // get random color
            int randColor = Color.rgb(random.nextInt(COLOR_MAX),
                    random.nextInt(COLOR_MAX), random.nextInt(COLOR_MAX));
            // OR
            pixels[index] |= randColor;
        }
    }
    // output bitmap
    Bitmap bmOut = Bitmap.createBitmap(width, height, source.getConfig());
    bmOut.setPixels(pixels, 0, width, 0, 0, width, height);
    return bmOut;
}

欢迎

 类似资料:
  • 有人知道如何给灰度图像添加微妙的噪音吗?我有一个灰度图像,我想给它添加一些微妙的黑和白噪音。有人知道怎么做吗? 我目前正在使用这种方法,但这只是生成随机颜色,并用这些颜色交换现有像素。如何在位图的某些像素上添加一些细微的黑白噪声? }}//输出位图bmOut=位图。createBitmap(width,height,source.getConfig());bmOut。设置像素(像素,0,宽度,0,

  • 我正在开发webRTC,我正在本地网络上的两个Android设备之间进行实时流,它对我来说工作得很好,除了音质问题,声音中有噪音和回声。如果我在一端使用免提,它会变得更好,但我不想使用免提。 那么我该如何提高音质,有什么技术可以提高音质。它还表示,webRTC内置了回声消除功能,如果这是回声仍然存在的原因。

  • GaussianNoise层 因为这是一个起正则化作用的层,该层只在训练时才有效。 GaussianDropout层 因为这是一个起正则化作用的层,该层只在训练时才有效。 AlphaDropout Alpha Dropout是一种保持输入均值和方差不变的Dropout,该层的作用是即使在dropout时也保持数据的自规范性。 通过随机对负的饱和值进行激活,Alphe Drpout与selu激活函数

  • GaussianNoise层 keras.layers.noise.GaussianNoise(sigma) 为层的输入施加0均值,标准差为sigma的加性高斯噪声。该层在克服过拟合时比较有用,你可以将它看作是随机的数据提升。高斯噪声是需要对输入数据进行破坏时的自然选择。 一个使用噪声层的典型案例是构建去噪自动编码器,即Denoising AutoEncoder(DAE)。该编码器试图从加噪的输

  • GaussianNoise层 keras.layers.noise.GaussianNoise(stddev) 为数据施加0均值,标准差为stddev的加性高斯噪声。该层在克服过拟合时比较有用,你可以将它看作是随机的数据提升。高斯噪声是需要对输入数据进行破坏时的自然选择。 因为这是一个起正则化作用的层,该层只在训练时才有效。 参数 stddev:浮点数,代表要产生的高斯噪声标准差 输入shape

  • [source] GaussianNoise keras.layers.GaussianNoise(stddev) 应用以 0 为中心的加性高斯噪声。 这对缓解过拟合很有用 (你可以将其视为随机数据增强的一种形式)。 高斯噪声(GS)是对真实输入的腐蚀过程的自然选择。 由于它是一个正则化层,因此它只在训练时才被激活。 参数 stddev: float,噪声分布的标准差。 输入尺寸 可以是任意的。