gpt4 book ai didi

java - 在 Android 中对图像进行二值化

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:28 25 4
gpt4 key购买 nike

我正在开发使用 tesseract OCR 从图像中扫描文本的 android 应用程序,
我听说在对图像进行 OCR 之前将图像二值化会得到更好的结果,
所以我开始寻找执行操作的代码,

我发现很少,但它实际上是在 java 中并且需要 awt 库......所以它们不能在 android 上工作。
那你能帮我找一个吗?
谢谢

最佳答案

我必须完成一项类似的任务,作为任务项目的一部分。我在我的工作区中找到了这段代码,我想这就是你需要的:

Bitmap img = BitmapFactory.decodeResource(this.getResources(), drawable.testimage);
Paint paint = new Paint();

ColorMatrix cm = new ColorMatrix();
float a = 77f;
float b = 151f;
float c = 28f;
float t = 120 * -256f;
cm.set(new float[] { a, b, c, 0, t, a, b, c, 0, t, a, b, c, 0, t, 0, 0, 0, 1, 0 });
paint.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(img, 0, 0, paint);

在这里,我使用 ColorMatrix 从彩色图像生成黑白图像。我还发现了这段用于将彩色图像转换为灰度图像的代码:

Bitmap result = Bitmap.createBitmap(destWidth, destHeight,Bitmap.Config.RGB_565);
RectF destRect = new RectF(0, 0, destWidth, destHeight);
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(filter);
canvas.drawBitmap(bitmap, sourceRect, destRect, paint);

希望对你有帮助。

关于java - 在 Android 中对图像进行二值化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16375471/

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