Название: как правильно сложить компоненты цвета Отправлено: XXCoder от Март 06, 2007, 14:40 Работаю с QImage. вот так я беру цвет пиксела и компоненты цвета РГБ
c=baseImage->pixel(i,j); colR=qRed(c); colB=qBlue(c); colG=qGreen(c); // и так несколько раз в соответствие с алгоритмом ... потом colBAntialiased=((colB+colB1+... + colBN)/N); // смешиваю компоненты синего цвета b=qRound(colBAntialiased); //собираю в синюю компоненту ... resultPixel=setRgb(a,g,b); //собираю пиксел с новыми характеристиками ВОПРОС: как правильно взять процентное отношение цвета, если я делаю colB*0,5 - - этот цвет становится черным. Помогите как взять правильно процент цвета пиксела, пожалуйста. Спасибо. Название: Re: как правильно сложить компоненты цвета Отправлено: Alex03 от Март 06, 2007, 16:22 Цитата: "XXCoder" ВОПРОС: как правильно взять процентное отношение цвета, если я делаю colB*0,5 - - этот цвет становится черным. Помогите как взять правильно процент цвета пиксела, пожалуйста. Во первых не очень понятно какого типа у Вас переменные цветовых компонент. Если плавучка то всё должно получаться. Вот только медленная она. Тут можно вовсю целочисленные вычисления с фиксированной точкой пользовать. Один из простых вариантов реализации фильтра, и блюра в частности, с использованием матрицы весовых коэффициентов 3х3 типа: 1 2 1 2 4 2 1 2 1 Название: как правильно сложить компоненты цвета Отправлено: XXCoder от Март 06, 2007, 16:54 double, промежуточные все такие, я потом округляю перед тем как собрать цвет. это я скейлинг делаю со сглаживанием.
Название: как правильно сложить компоненты цвета Отправлено: Alex03 от Март 07, 2007, 08:16 Да всё должно работать в дабле.
Т.к. значений у компонента цвета всего 256, то 32-х разрядов вполне хватает для целочисленных вычислений. Для скейлинга самое простое билинейная интерполяция. (точнее самое простое - ближайший пиксел, но часто неприемлим) Название: как правильно сложить компоненты цвета Отправлено: XXCoder от Март 07, 2007, 11:45 какие есть еще методы скейлинга... если уменьшение больше чем 1/3 то получается очень плохое изображение.
|