我正在使用tess-two库,并希望将图像中除黑色外的所有颜色转换为白色(黑色是文本)。这样做可以使tess-two更容易地读取文本。我尝试了各种方法,但它们逐像素地转换太耗费时间。是否有一种通过canvas或其他快速获得结果的方式来实现这一目标。
更新:
这个算法出现的另一个问题是打印机不使用与Android相同的黑白色。因此,该算法将整个图片转换为白色。
我目前正在使用逐像素方法。
更新:
这个算法出现的另一个问题是打印机不使用与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);
}
}
}
ColorMatrix
吗?这是一个用于转换位图的颜色和透明度组件的 4x5 矩阵。 - Blackbelt