LINUX.ORG.RU

PTRANS — простая программа для сглаживания больших изображений

 


0

0

Вышла версия 1.0 программы PTRANS, предназначенной для масштабирования и сглаживания больших изображений по алгоритму Флойда-Стейнберга. Программа работает с потоком, одновременно обрабатывая всего две строки, поэтому требует сравнительно мало памяти даже для больших изображений. Форматы входных данных: PPM или PGM (цветное изображение или в оттенках серого), выходных: PGM или PBM (серое или двухуровневое). Будет полезна при отправке изображений со сканера на принтер.

>>> Сайт программы

★★★★★

Проверено: Shaman007 ()

Где это может применяться? В типографиях?

anonymous
()

В чем новость то? Таких прог море, и что про каждую писать? Удалите новость

anonymous
()

Сложно вспомнить более Ъ-ную прогу..

madcore ★★★★★
()

Не понимаю, о чем новость?

maxya
()

А зачем сейчас экономить каких-то 100-200 мегабайт оперативки? Не будет ли эффективнее загрузить все изображение в память целиком?

anonymous
()
Ответ на: комментарий от anonymous

> А зачем сейчас экономить каких-то 100-200 мегабайт оперативки? Не будет ли эффективнее загрузить все изображение в память целиком?

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

Korwin ★★★
()
Ответ на: комментарий от Korwin

>Вы никогда не работали с изображениями которые весят по нескольку гигов.

Сейчас проще 16Гб оперативы использовать, но сделать быстрее, чем дрочиться с 1-2Мб и ждать из-за узких мест.

Metallic
()
Ответ на: комментарий от anonymous

Сейчас проще 16Тб оперативы использовать, но сделать быстрее, чем дрочиться с 1-2Гб и ждать из-за узких мест.

anonymous
()
Ответ на: комментарий от anonymous

> Сейчас проще 16Тб оперативы использовать, но сделать быстрее, чем дрочиться с 1-2Гб и ждать из-за узких мест.

Умнег. На Java программируешь?

Korwin ★★★
()
Ответ на: комментарий от anonymous

Целиком.

>А зачем сейчас экономить каких-то 100-200 мегабайт оперативки? Не будет ли эффективнее загрузить все изображение в память целиком?

Бывают изображения которые целиком не загрузишь, спутниковые снимки какие-нибудь, снимки микроскопов...

Camel ★★★★★
()
Ответ на: комментарий от anonymous

> А зачем сейчас экономить каких-то 100-200 мегабайт оперативки? Не будет ли эффективнее загрузить все изображение в память целиком?

Да, у тебя программа сидеть с распределёнными 200Мб и ждать пока сканер там головой навозюкается и загрузить тебе все двести метров. А сервер обслуживает ввод, скажем, со 100 сканеров, то это вполне разумно - распределять 20 гигов буферов.

anonymous
()
Ответ на: комментарий от Metallic

>Сейчас проще 16Гб оперативы использовать, но сделать быстрее, чем дрочиться с 1-2Мб и ждать из-за узких мест.

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

AVL2 ★★★★★
()
Ответ на: комментарий от Korwin

> Вы никогда не работали с изображениями которые весят по нескольку гигов

Да, пока только с А1, отсканированными в разрешении 600 dpi, приходилось работать. А это порядка сотни мегабайт или около того.

Если источник таков, что менее объемные никак не получить - что ж, можно и подобную программу использовать для предварительного преобразования. Хотя если скорость получения исходных изображений выше скорости обработки этой программой - имеет смысл проверить, не получится ли ускорить за счет использования большего кол-ва оперативки.

anonymous
()
Ответ на: комментарий от anonymous

Ну, если у нас скорость получения исходного изображения меньше скорости обработки, то думать о повышении скорости обработки, очевидно, нет смысла. Так что не спорю, все от задачи зависит.

А для чего нужно сканировать с одним разрешением, а потом программно его менять, причем в рамках одного сервера, обслуживающего кучу параллельно работающих сканеров?

И зачем нужно сначала сканировать, а потом сразу же печатать?

Я не подвергаю сомнению, мне любопытно.

anonymous
()
Ответ на: комментарий от anonymous

Кстати, кто знает что это за Лена на сайте? Не первый раз ее вижу, что ее лицо суют так часто?

anonymous
()
Ответ на: комментарий от anonymous

> Да, пока только с А1, отсканированными в разрешении 600 dpi, приходилось работать. А это порядка сотни мегабайт или около того.

Видимо, всё-таки не приходилось. Это 820MB даже в 24-битном цвете.

anonymous
()
Ответ на: комментарий от anonymous

> Кстати, кто знает что это за Лена на сайте? Не первый раз ее вижу, что ее лицо суют так часто?

А вы ткните на неё, прям на сайте. Там всё будет написано. Даже по-русски.

anonymous
()
Ответ на: комментарий от anonymous

>Кстати, кто знает что это за Лена на сайте? Не первый раз ее вижу, что ее лицо суют так часто?

Стандартное тестовое изображение для графических алгоритмов. Скан из Плейбоя, который использовал в 70е годы какой-то американский студент в магистерской. С тех пор и повелось.

anonymous
()

Очень Ъ программа. Если задача может быть решена с минимум использования памяти - она и должна так решаться.

legolegs ★★★★★
()
Ответ на: комментарий от anonymous

> Видимо, всё-таки не приходилось. Это 820MB даже в 24-битном цвете.

А что, в мире бывают только RGB-изображения? В градациях серого это 280 мб. Порядок я вспомнил правильно.

Хотя обычно в наших задачах 300 dpi хватает с головой.

anonymous
()

dithering - сглаживание ?!!!!!!!!!! мой моск ....

Утилита служит для масштабирования и аппрокимации полутонов при выводе на устройства с меньшим числом градаций уровней цвета по одному из самых тупых и примитивных, но все еще испольуемым криворукими дилетантами псевдопрограммистами методу Флойда-Стейнберга, созданым во времена когда 256 байт операвиты это круто и очень дорого.

Пoлезна она только для ее создателя.

Любой принтер в драйверах делает это же гораздо быстрее корректнее и использует меньше ресурсов.

Ждем новость про гениальную полезную утилиту которая позволяет считывать файлы не по одному байту, а сразу несколько, с использованием превосходного алгоритма накопления строки в отдельном выделенном в оперативной памяти буфере.

anonymous
()
Ответ на: комментарий от anonymous

Да они про гамма коррекцию вообще не заикнулись, всю арифметику делают в пространстве исходных значений, спорим, они уверены что при макс отчете бегого 255 128 это половиняа яркости - однозначно в утиль. дилетанская поделка в стиле "hello world"

anonymous
()
Ответ на: комментарий от anonymous

>anonymous (*) (11.12.2008 20:27:09)

Молодец, знаешь слово "гамма". Уже тры.

anonymous
()
Ответ на: комментарий от anonymous

> dithering - сглаживание ?!!!!!!!!!! мой моск ....

А чо? для общечеловеческой новости смысл точен, для специалистов тоже понятен.

> Утилита служит для масштабирования и аппрокимации полутонов при выводе на устройства с меньшим числом градаций уровней цвета по одному из самых тупых и примитивных, но все еще испольуемым криворукими дилетантами псевдопрограммистами методу Флойда-Стейнберга, созданым во времена когда 256 байт оперативы это круто и очень дорого.

> anonymous (*) (11.12.2008 20:18:17)

Да ты чо? Один из самых требовательных к быстродействию алгоритмов-то? Ты не гониш? Для большого класса изображений только он и хорош, только комп надо мощный и очень быстрый....аааа прости, ты не нищебротко случайно?!!!

> Да они про гамма коррекцию вообще не заикнулись, всю арифметику делают в пространстве исходных значений, спорим, они уверены что при макс отчете бегого 255 128 это половиняа яркости - однозначно в утиль. дилетанская поделка в стиле "hello world"

> anonymous (*) (11.12.2008 20:27:09)

Даааааа?? (Это не вы случайно про необходимость RAW обчественности глаза открываете? Кагбе "знатоки-прохвессионалы? Не?")

Цетировою:

Produces PBM (i.e. P4) dithered output, or PGM (i.e. P5) gray-level output from PPM or PGM (P5 or P6) input. Reads/writes from/to stdin/out if -input/-output not specified

-multiply makes bigger dots (try -multiply 3,3), -scale sets output width and height in pixels using linear interpolation. -gamma adjusts brightness F range 0.2 to 5.0 -s use S curve color adjustment F is gamma value of 0.2 to 5.0. Good for contrast adjustment. -s 1000.0 is equivalent to -threshold 32768

Песда рулём, 2-е знатоки-анонигмусы-имаге-прохвессианалы набежавшие на LOR жидко сернулись с реактивновою тягой? И поделом, заслужили :(

anonymous
()
Ответ на: комментарий от legolegs

>Очень Ъ программа. Если задача может быть решена с минимум использования памяти - она и должна так решаться.

Правильно! Иначе начнутся ошибки с буфером переполнения, и потом будут писать Критическая уязвимость в PTRANS, срочно обновите до версии 1.0.1, либо ждите эксплоит в виде большого изображения на 1 Тб, вам его пришлют по е-майл!

anonymous
()
Ответ на: комментарий от anonymous

> Стандартное тестовое изображение для графических алгоритмов. Скан из Плейбоя, который использовал в 70е годы какой-то американский студент в магистерской. С тех пор и повелось.

> anonymous (*) (11.12.2008 19:49:50)

Вы что-то путаете. Да и Плейбой - "не сотвори себе кумира", не стоит слишком брать пример с его псевдопрофессиональных фотоматериалов.

anonymous
()
Ответ на: комментарий от anonymous

>>А зачем сейчас экономить каких-то 100-200 мегабайт оперативки? Не будет ли эффективнее загрузить все изображение в память целиком?

Правильно. Каждой отдельной задаче - отдельный компьютер. И нефик экономить на железе. Еще необходимо упомянуть о стоимости работы тру быдлокодера. Один час - одна планка памяти, не иначе. И то что вы параллельно не сможете по тырнету лазить, это даже к лучшему.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо чуваки, удовлетворил свое давнее любопытство про Лену ;-)

anonymous
()

а оно многопоточно умеет?

anonymous
()
Ответ на: комментарий от anonymous

при чем тут профессионализм фотоматериалов?

Его тут не больше, чем в раскладке qwerty на клавиатуре.

Просто кто-то когда-то взял для демонстрации то ли сканера, то ли плоттера фото, которое было под рукой, а другие стали сравнивать на нем качество техники и пошло поехало...

AVL2 ★★★★★
()

Че это за паскаль по ссылке?

anonymous
()
Ответ на: комментарий от anonymous

> Правильно. Каждой отдельной задаче - отдельный компьютер. И нефик экономить на железе. Еще необходимо упомянуть о стоимости работы тру быдлокодера. Один час - одна планка памяти, не иначе. И то что вы параллельно не сможете по тырнету лазить, это даже к лучшему

Это сарказм? Просто когда на первом месте скорость обработки - на железе действительно глупо экономить. И со сложностью написания программ это никак не связано.

anonymous
()
Ответ на: комментарий от anonymous

> Вы что-то путаете. Да и Плейбой - "не сотвори себе кумира", не стоит слишком брать пример с его псевдопрофессиональных фотоматериалов.

Просвещайся про Лену, плейбой таки при чем

http://en.wikipedia.org/wiki/Lenna

anonymous
()

Вышла новая версия программы HelloWorld. Вместо одной строки она печатает сообщение в две.

anonymous
()

Судя по скриншотам это какая-то крутая программа чтобы портить картинки.

insa
()
Ответ на: комментарий от anonymous

Ну ты туп конкретно. Ну не понял ни одного слова из моего поста - зачем отвечать то тем более неся такой поток сознания? Написал бы "Сам идиот" или классическое "предложи способ лучше" это бы прокатило.

Суть dithering - добавление шума. Как его получить, способы разные есть. И самый лучший - добавлять настоящий шум, амплитуда которого примерно равна одному переходу яркости выходного изображения до операции обрубания точности, да еще желательно разный для последовательных кадров чтобы во времени происходило усреднение (см. "дешевые LCD мониторы 6-бит-матрица-охренеть-цвета-как-почти-8-бита-за-смешные-деньги"). Для совсем нищебродов - "упорядоченым возбуждением", или вобще клиника типа уменьшать реальное разрешение и имитировать переходы готовыми огромными псевдо пикселями (для печати прокатывает, но даже дя печати зачем терять пространственное разрешение? ).

Вопрос - ну и в каком месте оно "сглаживает" ? Буквальный перевод - "дрожание". Cглаживает дрожанием ? О нет заканчиваем, снова моооск ...

Словосочетание "Гамма коррекция" понравилась ? А зря. Я как раз написал про нее как более упрощенную проблему, по настоящему надо было бы про преобразование цветовых пространств из исходных в линейное, (минимум надо каждый пиксел пропускать чеез инверсное гамма преобразование потом через матрицу 4x4), потом выполнения арифметических операций, и затем возврат или преобразование в выходное. Причем из за особенностей неинейного преобразования требуется огромная точность для внутреннего представления цвета, иначе будут потери.

Внимание вопрос - в какой строке приведенной программы есть преобразование прямое и обратное ? Тупейшая арифметика, оcнованая на дилетантском представлении автора о том что "пиксел со значением 10 в два раза темнее чем пиксел с значением 20". И какое это вообще имеет отношение к тому что у этой тупой поделки есть опция изменить гамму входного изображения ? Что, похожее слово нашел ?

Может у вас она и рулем, но тем не менее рекомендую сначала думать прежде чем писAть.

anonymous
()
Ответ на: комментарий от anonymous

Смеялся..."...суть dithering - добавление шума.... " Да вы прям артист, Пертосян практически.

И так и не поняли что и как и зачем делает программа? Забавно. И для чего там "дрожание" не поняли? Типа антиалиазинг что-ли? Ох-ох, божечки.

В основе программы заложен один из методов "имитации" цветовых полутоновых пикселов, замена их мозаикой из нескольких пикселов. Это нужно на практике, когда например нужно подготовить исходное высококачественное изображение для полиграфии или рекламных постеров, для но нежелательно ухудшать при этом его качество восприятия зрителем.

Подобная имитация происходит, когда вы печатаете полутоновое серое изображение на лазерном принтере (присмотритесь, увидите подобие примитивного dithering-а). (обсуждаемая программа делает подобные штуки несравнимо качественнее).

И задача эта становится достаточно сложной при повышенных требованиях к качеству и цветности восприятия. Так вот, метод Флойда-Стейнберга - один из сложных, тяжёлых, но эффективных методов. Посмотрите на образцы по ссылке, кому интересно. Действительно впечатляющие примеры. Даже для тех кто тему "ниасилил", наверное.

anonymous
()
Ответ на: комментарий от Metallic

>>Вы никогда не работали с изображениями которые весят по нескольку гигов.

>Сейчас проще 16Гб оперативы использовать, но сделать быстрее, чем дрочиться с 1-2Мб и ждать из-за узких мест.

ага-ага. в каждый принтер, бл$, прямо по 16Gb будем ставить, да?

HellAngel ★★
()
Ответ на: комментарий от anonymous

> В основе программы заложен один из методов "имитации" цветовых полутоновых пикселов, замена их мозаикой из нескольких пикселов.

Не мозаикой, а шумом. Мозаика - упорядоченный шум. А то что по ссылке - случайный.

> Подобная имитация происходит, когда вы печатаете полутоновое серое изображение на лазерном принтере (присмотритесь, увидите подобие примитивного dithering-а). (обсуждаемая программа делает подобные штуки несравнимо качественнее).

Тут уже сказали местные онанимусы что в драйвере принтера алгоритмы покруче будут. Не уточнили, правда, ни версию драйвера, ни версию принтера.

Вобщем не очень хорошо выглядишь и не разбираешься в предмете разговора.

oguretz
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.