RenderScriptIntrinsicColorMatrix

时间:2019-02-23 23:00:01

标签: android image-processing bitmap renderscript android-renderscript

我正在尝试使用Android的TESS 2库进行一些OCR。

现在,我正在向TessBaseApi提供一个已通过进行二值化处理的位图 RenderscriptInstrinsicColorMatrix。经过处理后,位图看起来还不错。但是,我可以在背景中看到不同的黑色阴影,试图从位图中消除这些阴影。对于以下4X4矩阵中的条目选择,我真的不太了解。我只是知道它是4X4,因为Bitmap对象中每个像素中都有ARGB分量。

我知道,通过调整这些数字条目,我可以以某种方式消除位图中黑色的不同阴影。这是后位图的图片 用RenderScript处理它: enter image description here

这是RenderScriptIntrinsicColorMatrix的代码:

Bitmap out = Bitmap.createBitmap(in.getWidth(),in.getHeight(),in.getConfig());
    Allocation inputA = Allocation.createFromBitmap(rs,in);
    Allocation outA = Allocation.createFromBitmap(rs,out,
            Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SHARED|Allocation.USAGE_SCRIPT);
    ScriptIntrinsicColorMatrix colorMatrix = ScriptIntrinsicColorMatrix.create(rs, Element.U8_4(rs));
    Matrix4f matrix4f = new Matrix4f(new float[]{-0.33f, -0.33f, -0.33f, 1.0f,
            -0.59f, -0.59f, -0.59f, 1.0f,
            -0.11f, -0.11f, -0.11f, 1.0f,
            1.0f, 1.0f, 1.0f, 1.0f
    });
    colorMatrix.setColorMatrix(matrix4f);
    colorMatrix.forEach(inputA, outA);
    outA.copyTo(out);

感谢任何建议或帮助

0 个答案:

没有答案