Цветокоррекция на андроидеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Цветокоррекция на андроиде

Сообщение Anonymous »

Я новичок в программировании для Android. Сейчас я делаю программу цветокоррекции с использованием Java для платформы Android.

В программе я должен иметь возможность выбрать точку на растровом изображении и сообщить программе, что это на самом деле это белый цвет, и программа повторно настроит все пиксели этого растрового изображения, чтобы все цвета этого растрового изображения были правильными.

Может кто-нибудь сказать мне, как мне это сделать? Теперь я уже могу получить точку из растрового изображения и вычислить ее RGB, но понятия не имею, как мне продолжить. Пожалуйста, покажите мне несколько примеров или статей, которые я могу прочитать.

Большое спасибо за ваше драгоценное время. Надеюсь вскоре услышать ваше мнение!



Результат фотографии:
http://www.flickr.com /photos/92325795@N02/8392038944/in/photostream

Моя фотография обновляется, и, несмотря на качество/шум/цвет, кое-где видны странные цвета . Кто-нибудь знает, что мне следует сделать, чтобы удалить его? Или даже лучше улучшить метод, который я использую? Вот код:

Ввод — растровое изображение для редактирования, inColor — цвет носа на фотографии, которую нужно редактировать, reqcolor — цвет моего носа на фотографии. образец/оптимальное фото.

Код: Выделить всё

    public Bitmap shiftRGB(Bitmap input, int inColor, int reqColor){

int deltaR = Color.red(reqColor) - Color.red(inColor);
int deltaG = Color.green(reqColor) - Color.green(inColor);
int deltaB = Color.blue(reqColor) - Color.blue(inColor);

//--how many pixels ? --
int w = input.getWidth();
int h = input.getHeight();

//-- change em all! --
for (int i = 0 ; i < w; i++){
for (int  j = 0 ; j < h ; j++ ){
int pixColor = input.getPixel(i,j);

//-- colors now ? --
int inR = Color.red(pixColor);
int inG = Color.green(pixColor);
int inB = Color.blue(pixColor);

if(inR > 255){ inR = 255;}
if(inG > 255){ inG = 255;}
if(inB > 255){ inB = 255;}
if(inR < 0){ inR = 0;}
if(inG < 0){ inG = 0;}
if(inB < 0){ inB = 0;}

//-- colors then --
input.setPixel(i,j,Color.argb(255,inR + deltaR,inG + deltaG,inB           + deltaB));
}
}

return input;
}
Большое спасибо за помощь! Я не могу выразить свою благодарность дальше, чем заранее сказать еще одно спасибо!

Подробнее здесь: https://stackoverflow.com/questions/143 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»