|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/32743b4c6dce.html, оценка из 5, голосов 10
|