gpt4 book ai didi

安卓饱和度滤镜矩阵

转载 作者:行者123 更新时间:2023-11-30 04:00:25 28 4
gpt4 key购买 nike

我已经为饱和度编写了以下矩阵,但它没有给出正确的结果。有人能告诉我这里有什么问题吗?

   ColorMatrix colorMatrix = new ColorMatrix(saturationFilter(0.3f));
ColorMatrixColorFilter matrix = new ColorMatrixColorFilter(colorMatrix);

public static float[] saturationFilter(float x){

float lumR = 0.3086f;
float lumG = 0.6094f;
float lumB = 0.0820f;
float matrix[] = {lumR*(1-x)+x,lumG*(1-x),lumB*(1-x), 0, 0, 0,0,
lumR*(1-x)+x,lumG*(1-x),lumB*(1-x), 0, 0, 0,0,
lumR*(1-x)+x,lumG*(1-x),lumB*(1-x), 0, 0, 0,0,
0f, 0f, 0f, 1f, 0f,
0f ,0f, 0f, 0f ,1f};

return matrix;
}

最佳答案

我已经通过正确编写矩阵来更正上述函数,因为我在所有错误的情况下都增加了红色 channel 。这工作正常。

   public static float[] saturationFilter(float saturation){

float p_val = cleanValue(saturation,100);
float x = 1+((p_val > 0) ? 3*p_val/100 : p_val/100);
float lumR = 0.3086f;
float lumG = 0.6094f;
float lumB = 0.0820f;
float matrix[] = {lumR*(1-x)+x, lumG*(1-x), lumB*(1-x), 0, 0,
lumR*(1-x), lumG*(1-x)+x, lumB*(1-x), 0, 0,
lumR*(1-x), lumG*(1-x), lumB*(1-x)+x, 0, 0,
0f, 0f, 0f, 1f, 0f,
0f ,0f, 0f, 0f ,1f};

return matrix;
}

private static float cleanValue(float p_val, float p_limit){
return Math.min(p_limit, Math.max(-p_limit, p_val));
}

关于安卓饱和度滤镜矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12582288/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com