LINUX.ORG.RU

Обработка изображений на AWK

 


4

2

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

Реализован алгоритм определения границ Дж. Кэнни, который, как известно, состоит из нескольких этапов. Каждый этап был вынесен в отдельный скрипт awk, и затем всё вместе собрано пайпами. Получаем труЪ потоковую обработку — эдакий OpenCL «за 40 лет до».

На скриншоте в терминале показан сам конвеер и как с ним справляются разные реализации awk. Моя в конкурсе пока не участвует - сыровата ещё :-) Собственно, для сравнения всё и задумывалось (бенчмаркаться на простых текстах поднадоело).

В остальном — дефолт, дебиан, гном3, ещё и вейленд, как выяснилось.

>>> Просмотр (1366x768, 671 Kb)

★★★★★

Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от pumbez

Спасибо, почерпнул много нового.

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

Подростковый нонконформизм

yoghurt ★★★★★
() автор топика

Интересно

Deleted
()

Годно, спасибо!

Bass ★★★★★
()

Когда-то у derlafff видел анализатор аудиокапчи на ImageMagick, теперь у yoghurt есть обработчик изображений на AWK. Вещества в комплект не входят.

r3lgar ★★★★★
()

Можно покороче и побыстрее :-)

$ cat alignRow.awk
{ print }
NR == 1 { if (/^P[23]$/) chan = substr($0, 2, 1); else exit(-1) }
NR == 2 { width = $1 }
NR == 3 { len = chan*width; RS="[ \n]+"; ORS=" " }
NR > 3 && !(++c % len) { printf("\n") }
$ time gawk -f alignRow.awk <xxx.ppm >xxx

real    0m0.281s
user    0m0.272s
sys     0m0.008s
$ time gawk -f alignRow.awk.orig <xxx.ppm >xxx

real    0m0.419s
user    0m0.408s
sys     0m0.008s

unterwulf
()

А почему оригинала не видно? Там, наверное, мужик с усами?

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

По ходу эта Лена та еще проститутка. У всех ее фотки есть.

Virtuos86 ★★★★★
()

Внезапно

mos ★★☆☆☆
()

yoghurt, stop piping cats!

«Моя реализация» - вот это наркомания так наркомания, учитывая брутальность авка

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

Леночку же все знают, ты чего.

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

Простой язык на самом деле, и довольно приятное упражнение - реализовать его :)

yoghurt ★★★★★
() автор топика

Ох и извращение использовать awk для кэнни-фильтрации текстовых картинок...

aido ★★
()
Ответ на: очевидно от mos

Да и вещества, судя по всему, одни. И упарываются они в одном притоне. И лечащий врач у них тоже наверняка один. Однако, наркомания занятная.

r3lgar ★★★★★
()

Круто, теперь нужно реализовать дип лернинг на авке:) А что, разных слоев в скрипты напихал, пайпов навставлял — сетка готова!

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

Я Хаара думал портануть, но нашлись другие дела)

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

Потому что не ставил +x на .sh. Но теперь буду знать, спасибо :}

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

Что-то мне подумалось, что c регекспом в RS будет только медленнее, но проверять не стал. Приму к сведению, спасибо :) В остальном - да, годно.

yoghurt ★★★★★
() автор топика

Так себе. Черно-белое из 40-х

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