【问题标题】:Android image sharpening, saturation, hue, brightness, and contrastAndroid 图像锐化、饱和度、色相、亮度和对比度
【发布时间】:2011-06-24 03:12:21
【问题描述】:

我正在尝试创建一个应用程序,该应用程序允许我通过调整上述每个字段的搜索栏来调整图像的色调、饱和度、亮度、对比度和清晰度。 喜欢http://ronbigelow.com/articles/workflow_basic/hue-saturation_tool.jpg

我不知道该怎么做,也找不到任何在线教程。 Android是否已经有任何东西可以做到这一点?我必须操纵单个像素的颜色吗?如果我必须弄乱像素,我该怎么做?

【问题讨论】:

    标签: android image-processing android-image pixel-manipulation


    【解决方案1】:

    是的,android 有一些处理颜色的工具,有些比其他的更容易。执行您特别要求所有图像的一般空间的唯一方法是修改单个像素。还有其他快速而肮脏的技巧,速度更快,但精度更低(ColorFilter)。

    换色器:

    private Bitmap adjustedHue(Bitmap o, int deg)
    {
       Bitmap srca = o;
       Bitmap bitmap = srca.copy(Bitmap.Config.ARGB_8888, true);
       for(int x = 0;x < bitmap.getWidth();x++)
           for(int y = 0;y < bitmap.getHeight();y++){
                   int newPixel = hueChange(bitmap.getPixel(x,y),deg);
                   bitmap.setPixel(x, y, newPixel);
           }
    
       return bitmap;
    }
    private int hueChange(int startpixel,int deg){
       float[] hsv = new float[3];       //array to store HSV values
       Color.colorToHSV(startpixel,hsv); //get original HSV values of pixel
       hsv[0]=hsv[0]+deg;                //add the shift to the HUE of HSV array
       hsv[0]=hsv[0]%360;                //confines hue to values:[0,360]
       return Color.HSVToColor(Color.alpha(startpixel),hsv);
    }
    

    从这里开始,饱和度/亮度是微不足道的。但是,虽然这一切都会得到你想要的,但它有点慢。 getPixel() 函数特别强大。如果您要实时修改这些内容,我建议首先“缓存”像素。例如,首先将所有 HUE、SATURATION、VALUE 和 ALPHA 值存储为 2d 数组,然后调用它们而不是在每次微小更改时调用 getPixel() 和 Color.colorToHSV() 将大大加快代码速度。

    另外,bitmap.getPixels() 函数对我来说效果更好。您可以先存储它生成的数组,然后对其进行迭代。

    现在,虽然可以使用类似的像素特定方法(将 V 乘以某个值,并添加一些偏移)来完成亮度/对比度……但清晰度并不是那么简单。清晰度不是孤立的基于颜色的修改,它是对图片本身的修改(称为“卷积”)。也就是说,变换需要知道一些关于相邻像素的信息才能工作。我不知道为此有内置的android功能。但它可以通过多种方式完成。

    如果您想要“锐化”功能,我会先尝试“模糊”功能。这是一个类似的过程,但它更直观(也更酷)。您实际上可以使用模糊来锐化图像。这家伙很好地解释了所有这些在 java 中的使用(使用源代码/小程序):

    http://www.jhlabs.com/ip/blurring.html

    【讨论】:

    • 你能给出亮度/对比度吗?我不知道如何得到Rgb的值,谢谢?
    • 非常非常sloooooooowww
    • 使用 gpuiimage 库
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多