Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Andrianov                     2:5017/13.40   11 Jul 2001  15:10:47
 To : Anton Silin
 Subject : dithering ?
 -------------------------------------------------------------------------------- 
 
 
  Hедавно, Сpд Июл 04 2001 в 09:25, некто Anton Silin
  писал All по поводy dithering ? :
 
  AS>   необходимо преобразовать 24-bit картинку (BMP) в 8-bit картинку.
  AS>   причем с определением наиболее подходящих цветов в новую палитру.
 
    IMHO наиболее сложная задача в подборе подходященй палитры. Есть несколько
 алгоритмов, но у всех есть те или иные недостатки. Hаиболее известен IMHO
 алгоритм с половиным или медианным сечением.
 
  AS>   для этого вроде dithering используется ?
  AS>   каков алгоритм dithering-a ?
 
    см. ниже.
 
  AS>   возможна ли обработка маленьких картинок (~50х10 пикс.) ?
 
    Возможна, конечно, вопрс в том, наколько удовлетворителен будет результат.
    Кстати, именно для маленьких картинок, возможно, имеет смысл попробовать
 итерационные алгоритмы, которые в отличие от дизеригна распространяют ошибку
 равномерно во все стороны, а не только на еще невычисленные точки.
 
  AS>   возможно ли при dithering-e использовать уже готовую палитру цветов
  AS> ?
 
    Можно, конечно.
 
 PS. Практика показывает, что в случае 2-мерного дизеринга результаты оказываются
 лучше, если чередовать направления прохода: одну строку слева направо, а
 следующую - справа налево.
 
 === Cut ===
 Д Алгоритмы (2:5017/13.40) ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД RU.ALGORITHMS Д
  Msg  : 917 of 2974 -913                    Loc Scn 
  From : Sergey Andrianov                    2:5017/13.40    Вcк 30 Июл 00 10:27 
  To   : Sergey Radkevitch 
  Subj : Bmp256 -> Bmp2 
 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД 
 Д
                 Здравствyй, yважаемый Sergey!
 
  Hедавно, Чет Июл 27 2000 в 19:01, некто Sergey Radkevitch
  писал Anatoly Ganitsky по поводy Bmp256 -> Bmp2 :
 
  AG>> Кто подскажет, как пpеобpазовать чёpно-белую каpтинку (с
  AG>> гpадациями) в чёpно-белую без гpадаций (двухцветную)? Только не
  AG>> так, что если яpкость точки больше половины, то это белый, иначе
  AG>> чёpный, а так чтобы была имитация... эээ сеpости :)
 
  SR> Я на 2-ом куpсе пытался то же самое для 16-ти и 64-х цветов сделать.
  SR> (отобpажение true-color каpтинки на EGA). Вообще, есть такое слово
  SR> dithering, но вот что оно означает - до сих поp точно не знаю :)))
 
 [...]
 
  SR> Способ 1.
 
 [...]
 
  SR> 3) получаешь случайное число в диапазоне от 0 до 1
  SR>    если число получилось меньше, чем вычисленная яpкость, то ставишь
  SR>    белую точку, иначе чеpную
 
    Вообще-то дизеринг отличается от этого алгоритма тем, что добавляется не
 случайное число, а ошибка, получившаяся при округлении цвета предыдущей точки.
 Т.е. пусть у нас идут подряд точки с яркостью 0.7. Первая точка округляется до
 1, ошибка -0.3, складываем ее со следующим числом, получаем 0.7-0.3=0.4,
 округляем до 0, ошибка 0.4, складываем со следующим, 0.7+0.4=1.1, округляем до
 1, ошибка 0.1 и и.д.
    Это - одномерный случай. В двумерном случае (для плоского изображения)
 желательно распространять ошибку не на одну правую точку (при проходе слева
 направо), а на возможно бОльшее число соседей, для чего вводим буфер в одну
 строку растра для подсчета ошибки и распределяем ее (ошибку) в несколько
 соседних точек.
    Считая, что перебор точек идет сверху вниз по строкам, а в строке слева
 направо по точкам:
           ***************
           ***************
           *******#о......
           ......ооо......
           ...............
    # - рассматриваемая в данный момент точка,
    * - уже заполненные точки,
    . - свободные точки,
    о - свободные точки, в которые распространяется ошибка.
 
                                     Hе прощаюсь
                                             Sergey
 
 --- ---  Да будет свет !  ---
  * Origin: Sergiev Posad <Ferma> Sergey Andrianov (2:5017/13.40)
 
 === Cut ===
 
                                     Hе прощаюсь
                                             Sergey
 
 --- Да будет свет !  ---
  * Origin: Сергиев Посад <Ферма> Сергей Андрианов (2:5017/13.40)
 
 --- Squish/386 v1.11
  * Origin: None (2:5017/1.40)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 dithering ?   Anton Silin   04 Jul 1996 09:25:00 
 dithering ?   Sergey Andrianov   11 Jul 2001 15:10:47 
 dithering ?   Aleksey V. Vaneev   16 Jul 2001 11:25:12 
Архивное /ru.algorithms/32743b4c6dce.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional