(A)RGB в двоичное изображение с помощью Color Matrix Android Studio

Можем ли мы преобразовать (A)RGB в двоичное изображение без использования циклов, как мы можем преобразовать (A)RGB в серое изображение с использованием цветовой матрицы следующим образом:

bitmap=negative(bitmap);//calling the reb2gray() function
imageView.setImageBitmap(bitmap);//and setting gray scale image to imageView

public Bitmap rgb2gray(Bitmap bitmap)//bitmap contains original image
{
    float[] gray_colour_matrix={0.21f,0.72f,0.07f,0,0,
                                 0.21f,0.72f,0.07f,0,0,
                                0.21f,0.72f,0.07f,0,0,
                                0,    0,    0,    1,0};
    ColorMatrix colorMatrix=new ColorMatrix(gray_colour_matrix);
    return get_bitmap_from_color_matrix(colorMatrix,bitmap);
}

public Bitmap get_bitmap_from_color_matrix(ColorMatrix colorMatrix,Bitmap bitmap)
{
    Bitmap ret=Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(),bitmap.getConfig());
    Canvas canvas=new Canvas(ret);
    Paint paint=new Paint();
    paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
    canvas.drawBitmap(bitmap,0,0,paint);
    return ret;
}

1 ответ

Решение

Согласно Сэру Селвину, Комментарий для преобразования rgb в двоичное изображение с использованием Color Matrix выглядит следующим образом;

public Bitmap rgb2bw(Bitmap bitmap)
{
    float[] gray_colour_matrix={0.21f*255,0.72f*255,0.07f*255,0,-255*127,
                                0.21f*255,0.72f*255,0.07f*255,0,-255*127,
                                0.21f*255,0.72f*255,0.07f*255,0,-255*127,
                                0,    0,    0,    1,0};
    ColorMatrix colorMatrix=new ColorMatrix(gray_colour_matrix);
}
Другие вопросы по тегам