Название: [РЕШЕНО] Фильтр desaturate Отправлено: Hrundel от Май 10, 2013, 19:56 Всем привет!
Пытаюсь написать качественный desaturate но пока получается нечто ужасное. Понимаю, что считаю не так. Третий день перелапачиваю интернет, но ничего найти не могу. Посему прошу о помощи. В коде выглядит так: Код: void ImageFilter::grauwert() И вот что из этого получается: (http://i47.fastpic.ru/big/2013/0510/6e/be67042ed0ad8ec96c34a965c508f36e.jpg) А должно выглядеть так: (http://i48.fastpic.ru/big/2013/0510/ac/e17cb558af08cc16b3d32856879d44ac.jpg) Всем заранее спасибо за ответы! Название: Re: Фильтр desaturate Отправлено: Fat-Zer от Май 10, 2013, 21:48 получившееся значения яркости могут выходить за 255... поэтому вместо белого цвета получаешь мусор...
надо как-то так подкрутить: Код: mono = mono>255 ? 255 : mono; ЗЫ: честно говоря, не очень знаю, но, есть сомнения по поводу цифр.... если результат не удовлетворит попробуй: 0.299 * R + 0.587 * G + 0.114 * B; [added] по поводу 255-ти я осчитался... не смотри на это.. Название: Re: Фильтр desaturate Отправлено: Hrundel от Май 10, 2013, 22:10 Да пробовал уже и с
Код: mono = mono>255 ? 255 : mono; Код: (max(r,g,b) - min(r,g,b))/2 Код: (r+g+b)/3 Название: Re: Фильтр desaturate Отправлено: Hrundel от Май 11, 2013, 01:38 Нащел замечательный вариант. Теперь все работает!
Код: void ImageFilter::grauwert() Название: Re: [РЕШЕНО] Фильтр desaturate Отправлено: Fat-Zer от Май 11, 2013, 13:02 там (max + min) / 2;
|