gpt4 book ai didi

android - 将位图中特定颜色以外的所有颜色转换为白色

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

我正在使用 tess-two 库,我希望将图像中除黑色以外的所有颜色都转换为白色(黑色将是文本)。从而使苔丝二更容易阅读文本。我尝试了各种方法,但它们在逐像素转换时花费了太多时间。有没有一种方法可以使用 Canvas 或任何能更快产生结果的东西来实现这一点。

更新

这个算法带来的另一个问题是打印机不使用与在 android 中相同的黑色和白色打印。因此算法将整个图片转换为白色。

我目前使用的逐像素方法。

 binarizedImage = convertToMutable(cropped);// the bitmap is made mutable
int width = binarizedImage.getWidth();
int height = binarizedImage.getHeight();
int[] pixels = new int[width * height];
binarizedImage.getPixels(pixels, 0, width, 0, 0, width, height);

for(int i=0;i<binarizedImage.getWidth();i++) {
for(int c=0;c<binarizedImage.getHeight();c++) {
int pixel = binarizedImage.getPixel(i, c);
if(!(pixel == Color.BLACK || pixel == Color.WHITE))
{
int index = c * width + i;
pixels[index] = Color.WHITE;
binarizedImage.setPixels(pixels, 0, width, 0, 0, width, height);
}
}
}

最佳答案

根据 Rishabh 的评论。使用颜色矩阵。由于黑色是黑色并且是 RGB(0,0,0,255),因此它不受乘法运算的影响。因此,如果您将所有 channel 中的所有内容乘以 255,所有内容都将超出限制并 curl 为白色,但黑色除外,它将保持黑色。

       ColorMatrix bc = new ColorMatrix(new float[] {
255, 255, 255, 0, 0,
255, 255, 255, 0, 0,
255, 255, 255, 0, 0,
0, 0, 0, 1, 0,
});
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(bc);
paint.setColorFilter(filter);

您可以使用该绘画在仅黑色保持黑色的彩色矩阵滤镜荣耀中绘制该位图。

注意:这是一个快速而绝妙的技巧,但是,它对黑色有效。虽然它非常适合您使用,并且会将冗长的操作变成即时的东西,但它实际上并不符合“特定颜色”的标题问题,我的算法可以使用您想要的任何颜色,只要它是黑色。

关于android - 将位图中特定颜色以外的所有颜色转换为白色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36474343/

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