(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);
}