Как изменить цвет изображения, но все же можно распознать объект? - PullRequest
2 голосов
/ 23 октября 2010

Название может быть немного расплывчатым, приведу пример: если мы изменим цветное изображение на черно-белое, мы все равно сможем распознать объекты в нем. У меня вопрос, могу ли я изменить цвет на КРАСНЫЙ или ЗЕЛЕНЫЙ или другой цвет вместо черного и белого в программах (я предпочитаю Java).

То, что я хочу сделать, так же, как этот вопрос: Как бы я тонировал изображение программно на iOS?

Однако я хочу сделать это на Android вместо iPhone.

Ответы [ 2 ]

1 голос
/ 23 октября 2010

Сделай что-нибудь подобное

Bitmap sourceBitmap = BitmapFactory... 

float[] colorTransform = .. // read ColorMatrix docs to understand the transform
ColorMatrix colorMatrix = new ColorMatrix();

ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);
Paint paint = new Paint();
paint.setColorFilter(colorFilter);         

Bitmap resultBitmap = Bitmap.createBitmap(
     sourceBitmap.getWidth(), 
     sourceBitmap.getHeight(),
     Bitmap.Config.RGB_565);

 Canvas canvas = new Canvas(resultBitmap);
 canvas.drawBitmap(sourceBitmap, 0, 0, paint);

int pixelColor=resultBitmap.getPixel(123,321);
0 голосов
/ 23 октября 2010

Да, при преобразовании в оттенки серого (это 256 оттенков серого, а не черного и белого), вы каким-то образом (в зависимости от алгоритма) отображаете интенсивность исходных цветов в значение n в диапазоне 0-255а затем установите все пиксели равными (n, n, n), что даст вам оттенок серого, 0 - черный, а 255 - белый.Теперь, если вы используете вместо этого (n, 0, 0), вы получите изображение с различной интенсивностью красного цвета.

(когда я пишу это, я все больше и больше сомневаюсь, что правильно понял ваш вопрос...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...