Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Осветлить пиксель (http://www.flasher.ru/forum/showthread.php?t=172201)

Fillini 04.12.2011 01:51

Осветлить пиксель
 
Здравствуйте. Стоит такая задача. Делаю морфинг из двух лиц, получаю третье. В получившимся фото присутствуют полупрозрачные/полусветлые пиксели, мусор вобщем. Хочется результат сделать более четким. Для этого придумал попиксельно пройтись по картинке и если пиксель светлее определенного значения, то осветлить его еще больше, чтобы было менее заметно.
Пробывал делать так. Переводить в HSV, вычислять S, если нужно то уменьшаем значение S, затем обратно в RGB. Появилась забавная штука, кроме значение 0 в S ничего не запишеш, ибо если записать так s= s-0.2 (ну или еще чтонибудь в этом духе), то появляется совершенно другой цвет...
Может ктонибудь объяснит мне принцип работы с HSV? Или подкинет идейку как другими способами осветлить пиксель.

Alex Lexcuk 04.12.2011 02:08

Я делал так - брал компоненты RGB и увеличивал их на определённое значение, если больше чем FF то ставим FF к примеру
Код AS3:

r = 0x33;
b = 0x22;
g = 0xAE;
r = r*1.2; if (r>0xFF) r = 0xFF;
g = g*1.2; if (g>0xFF) g = 0xFF;
b = b*1.2; if (b>0xFF) b = 0xFF;

Вот тут наглядно видно как это будет
http://www.murmadillo.tut.su/html/te...-flash-3d.html

ProxyGreen 04.12.2011 02:22

Вы меняете насыщенность S, а не яркость V. Отсюда и другой цвет.
wikipedia

Fillini 04.12.2011 02:38

Вроди работает. Спасибо. Теперь не могу разобраться с пороговым значением цвета.
Код AS3:

var p:uint = blankBitmap.bitmapData.getPixel(i, j);
                                        if (p > 0xeeeeee) {
                                                p = calcLigth(1.1, p);
 
                                                blankBitmap.bitmapData.setPixel(i, j, p);
                                        }

Делаю так. Как отличить светлый пиксель от не светлого


Часовой пояс GMT +4, время: 10:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.