Re: Графика: "Волшебная палочка" в Photoshop
От: Буравчик Россия  
Дата: 11.05.09 00:34
Оценка: 4 (2)
Здравствуйте, MitjaT, Вы писали:

MT>Здравствуйте!


MT>Очень интересует используемый алгоритм при реализации инструмента "Magic Wand" в Adobe Photoshop.

MT>Смысл в том, что при указании начальной точки и заданным параметром "Tolerance" программа выделяет область изображения со схожими цветами.
MT>Ожидаю (по крайней мере Photoshop справляется с задачей), что окажется выделе "зеленый" круг.

Не знаю как сделано в Photoshop. Но предположу вот что:
1. Цветовая модель RGB не сильно подходит для "волшебной палочки". Более подходящей возможно будет HSV. Там, например, учитывается яркость тона. В статье же предложен достаточно грубый алгоритм вычисляния "цветового расстояния" между точками. О чем там собственно и написано.
2. В статье точки, выбираемые палочкой, определяются при сравнении с некой начальной точкой — выбранной пользователем. Возможно, в графических программах используется сравнение с близлежащими точками. Т.е. цвета точек, которые попадут в маску, могут достаточно сильно отличаться от начальной точки, однако переход к ним должен быть плавным.
3. Также, возможно, перед применением "волшебной палочки" картинка проходит какие-то фильтры, например, слабое размытие, чтобы различные шумы на картинке не влияли на результат.

В простейшем случае можно попробовать перейти к HSV и на основе этой модели выбрать подходящую функцию "цветового расстояния".
... << RSDN@Home 1.2.0 alpha 4 rev. 1136>>
Best regards, Буравчик
Re: Графика: "Волшебная палочка" в Photoshop
От: vadimcher  
Дата: 10.05.09 20:05
Оценка: 2 (1)
Здравствуйте, MitjaT, Вы писали:

MT>Здравствуйте!


MT>Очень интересует используемый алгоритм при реализации инструмента "Magic Wand" в Adobe Photoshop.

MT>Смысл в том, что при указании начальной точки и заданным параметром "Tolerance" программа выделяет область изображения со схожими цветами.
MT>Видел несколько статей, но это не совсем то, что нужно.
MT>Скажем, в этой статье:
MT>http://www.losingfight.com/blog/2007/08/28/how-to-implement-a-magic-wand-tool/
MT>...описан довольно очевидный способ, основанный на алгоритме "flood fill", по которому рекурсивно (или другим способом) для данной точки заданного цвета выбираются соседние по горизонтали и вертикали, отвечающие какому-то условию.
MT>Но при реализации лично я не смог добиться хорошего результата. Дело в том, что, взяв для эксперимента jpg-изображение, не смог добиться хорошего результата — либо не выделяется ожидаемая область целиком, либо выделяется много лишнего).

Не видел ни одной программы, где бы результаты работы данного инструмента всегда соответствовали бы ожиданиям.

MT>Для тестирования использовал файл:

MT>здесь
MT>Ожидаю (по крайней мере Photoshop справляется с задачей), что окажется выделе "зеленый" круг.
MT>Подскажите, пожалуйста, где можно почитать про использованный алгоритм?

Возьми любой open source графический редактор, тот же GIMP, а можно и старые версии paint.net, ну или любой другой более-менее известный, и посмотри, как это делается там.

А вот зайца кому, зайца-выбегайца?!
Графика: "Волшебная палочка" в Photoshop
От: MitjaT Россия  
Дата: 10.05.09 19:51
Оценка:
Здравствуйте!

Очень интересует используемый алгоритм при реализации инструмента "Magic Wand" в Adobe Photoshop.
Смысл в том, что при указании начальной точки и заданным параметром "Tolerance" программа выделяет область изображения со схожими цветами.

Видел несколько статей, но это не совсем то, что нужно.
Скажем, в этой статье:
http://www.losingfight.com/blog/2007/08/28/how-to-implement-a-magic-wand-tool/
...описан довольно очевидный способ, основанный на алгоритме "flood fill", по которому рекурсивно (или другим способом) для данной точки заданного цвета выбираются соседние по горизонтали и вертикали, отвечающие какому-то условию.

Но при реализации лично я не смог добиться хорошего результата. Дело в том, что, взяв для эксперимента jpg-изображение, не смог добиться хорошего результата — либо не выделяется ожидаемая область целиком, либо выделяется много лишнего).
Для тестирования использовал файл:
здесь

Ожидаю (по крайней мере Photoshop справляется с задачей), что окажется выделе "зеленый" круг.

Подскажите, пожалуйста, где можно почитать про использованный алгоритм?
magic wand графика волшебная палочка
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.