Вроде бы основные вещи, которые хотел написать об инструментарии фотолюбителя под Linux, я написал. Может быть, цикл и продолжится, особенно если появятся вопросы от читателей, но пока — предварительный итог.
четверг, 23 июня 2016 г.
Пингвин-фотолюбитель: 5. Стекинг
Первым делом, пожалуй, сошлюсь на источники: ключевым по теме данного поста стал англоязычный пост Barry Grussling — «Focus Stacking in Linux»; прочая информация получена из официального руководства enblend/enfuse. Собственно enfuse и будет нашим главным инструментом для стекинга.
Что такое стекинг? Это когда мы делаем несколько кадров одного и того же, в общем случае — с разными параметрами, а затем хитрый алгоритм собирает нам результирующую картинку. Например, если мы сделаем несколько снимков с разной экспозицией, то можем получить в результате что-то очень похожее на результат сведения HDR, о котором я говорил в предыдущем посте. С той лишь разницей, что собственно HDR-изображения (т.е. с динамическим диапазоном более 8 бит на канал) мы не получим, сразу приведение к 8-битному виду.
Кроме стекинга по экспозиции рассмотрим еще уменьшение шумов и стекинг по фокусу.
суббота, 18 июня 2016 г.
Пингвин-фотолюбитель: 4. HDR
HDR — High Dynamic Range — термин для обозначения технологий работы с диапазоном яркости, который превышает стандартный. Относительно любительской фотографии этим термином обычно обозначают создание HDR-изображений из нескольких снимков обычного диапазона, а также их сведение к стандартному RGB разными специфическими методами. Картинка сверху поста демонстрирует удачный пример применения таких технологий.
Строго говоря, RAW-файлы и 16-битные TIFF сами по себе являются HDR-изображениями, поскольку их глубина цвета превосходит стандартную однобайтную. Однако и ее как правило недостаточно, чтобы на одном снимке запечатлеть и яркое небо (не допустив пересветов) и какие-нибудь ближние затемненные участки. Кроме того, обычные мониторы все равно этот диапазон полностью отобразить не способны. В отличие от человеческого глаза, который очень хорошо адаптируется, рассматривая разные участки общей картины... К счастью, мозг при восприятии зрительной информации тоже хорошо адаптируется, и мы можем специальными программными методами построить картинку, которая будет выглядеть более естественно, чем просто взятая с камеры фотография. Ну, или совсем неестественно и сюрреалистично, что тоже можно использовать в качестве выразительного средства.
Итак, нас сегодня интересует программа Luminance HDR.
пятница, 17 июня 2016 г.
Пингвин-фотолюбитель: 3. Панорамы
Для склеивания панорам нам понадобится программа с гордым именем Hugin. Имя действительно гордое, ибо дано в честь Хугина — одного из воронов Одина.
На КДПВ, конечно, не сам Хугин, а некий современный его сородич. Будем считать, потомок.
Устанавливать программу я рекомендую опять же свежую версию из PPA — «ppa:hugin/hugin-builds
». На момент написания поста актуальна версия 2016.0.0. Вообще-то, тут у меня накладочка — Hugin отказался заводиться на виртуалке, как свежий, так и из основного репозитория. Судя по всему, ему не хватило драйверов видеокарты. Так что гарантировать, что свежая версия работает под Linux Mint лучше старой, я не могу. Скрины будут с моей основной системы, т.е.
Gentoo.
RAW-файлы Hugin, к сожалению, читать не умеет, поэтому склеивать будем из 16-битного TIFF, предварительно полученного посредством Darktable.
четверг, 16 июня 2016 г.
Пингвин-фотолюбитель: 2б. Краткое примечание к краткому замечанию
Если внимательно приглядеться к фотографиям в прошлом посте, становится видно, что магия UFRaw — это ни в коем случае не внесение искажений, а напротив — исправление бочкообразной дисторсии — прямые в его варианте прямее. Тогда как
Darktable по умолчанию сконвертировал нам картинку «как есть» — со всеми оптическими искажениями. Если мы хотим эти искажения исправить, нам в нем надо задействовать модуль «Оптические искажения» (см. скрин выше). При этом черные поля добавляться не будут (а вот выступающие уголки обрежутся).
среда, 15 июня 2016 г.
Пингвин-фотолюбитель: 2а. Краткое замечание к предыдущим сериям
Как я уже говорил, «проявку» RAW можно делать и в пакетном режиме — из командной строки, например, посредством UFRaw. Более того, можно натравить на RAW-файл и
ImageMagick, а следовательно — мой скрипт, описанный в предыдущем посте. Впрочем, ImageMagick препоручит конвертацию консольной версии UFRaw.
А теперь я хочу продемонстрировать, почему так делать не надо.
Пингвин-фотолюбитель: 2. Командная строка и пакетная обработка
Коротко о главном: главный обработчик изображений из командной строки, равно как и в пакетном режиме, у нас по прежнему пакет ImageMagick. КДПВ справа взята поиском по его названию в «картинках Google», помимо демонстрации некоторых возможностей там и пингвин присутствует.
Кроме того, нам понадобятся минимальные знания оболочки GNU Bash и замечательная утилита для работы с данными EXIF (Exchangeable Image File Format — стандарт, позволяющий добавлять к изображениям метаданные, в первую очередь, когда и чем снято) — exiftool.
С одной стороны, расписывать все возможности ImageMagick и ExifTool в подробностях — никакого терпения не хватит. С другой — у меня есть парочка примеров, собственноручно наскриптованных, но не описанных... Поэтому в данном посте я просто разберу эти примеры, а если нужно что-то дополнительно, прошу в комментарии.
понедельник, 13 июня 2016 г.
Пингвин-фотолюбитель: 1. «Проявка» RAW-файлов
Первая программа, которая нам понадобится — это Darktable. И это тот редкий случай, когда можно говорить об аналогах: по своим задачам и базовым функциям Darktable соответствует любимому многими фотографами софту от Adobe — Lightroom. Насколько хорошо соответствует, я обсуждать не готов, поскольку лайтрума под рукой нет.
К сожалению, в репозиториях Linux Mint находится довольно древняя версия Darktable — 1.4, поэтому я рекомендую добавить PPA «
ppa:pmjdebruijn/darktable-release
» с последними стабильными версиями и устанавливать оттуда (информация взята с официального сайта). Старой версией тоже можно пользоваться, но новая лучше. Актуальная версия, о которой и пойдет речь — 2.0.4.
суббота, 11 июня 2016 г.
Пингвин-фотолюбитель: Предисловие
Кажется, у меня появилось немного времени, чтобы сделать то, что давно собирался — описать возможности, доступные в Linux, для любительской обработки фотографии. И нет, это не будет очередной список «аналогов Фотошопа».
Во-первых, слово «любительской» выше — тут ключевое. Профессионалам все-таки стоит работать с профессиональными инструментами, которые запускаются отнюдь не под Linux. Человеку же, снимающему для собственного удовольствия, ради хобби (одного из) менять родную систему на платную и неудобную — не резон.
Во-вторых, поиск аналогов — дело в принципе не благодарное. Поэтому я буду использовать другой подход: вот задача (осмысленная и более-менее часто встречающаяся) — а вот решение. Без особых заморочек на сравнение с аналогами. Кто захочет — может углубиться в тему самостоятельно, остальные получат в руки соответствующие задаче инструменты с минимально достаточными пояснениями.
среда, 9 марта 2016 г.
Средства самопознания в Ruby
Оригинал этой статьи опубликован в журнале «Системный администратор» №1-2 (146-147) за февраль 2015.
Что программа может знать о самой себе?
Практически все современные языки программирования содержат средства, позволяющие во время выполнения программы получить какие-то данные о структуре самой этой программы. В компилируемых языках такие возможности, как правило, ограничены и отключаемы, в целях оптимизации, в интерпретируемых же более обширны, поскольку эти данные все равно необходимы самому интерпретатору, соответственно, содержатся в памяти, и вопрос только в том, предоставлять ли к ним доступ языковыми средствами.
В данной статье я планирую рассмотреть те средства «самопознания», которые доступны для программ на Ruby.
четверг, 25 февраля 2016 г.
О мониторах, дыброво
На первый взгляд, мониторы у меня дома и на работе1 отличаются незначительно. В сравнении на Яндекс.Маркете взгляд скорее остановится на показателях контрастности, однако это не самое интересное...
Интересное же я обнаружил, когда начал интересоваться фотографией и ее обработкой соответственно. Оказывается, 16.2 млн. цветов — это на деле 262 тысячи, т.е. 18-битный цвет, но с попеременным отображением (dithering). Разница при обычной работе, может быть, и не велика, но если выставить на мониторе режим sRGB (а его необходимо выставить для адекватной работы с фото), отличия бросаются в глаза — все цвета какие-то бледные и грязные.
Выбирал я себе монитор в свое время в основном по цене и на глаз — в магазине из всех бюджетных FullHD он единственный давал нормальный черный. Оказалось, это не единственное его достоинство. Как выбирались офисные мониторы, понятия не имею. Знаю только, что давно и централизованно.
1) Домашний — BenQ GW2265HM, рабочий — BenQ G2320HDBL.
четверг, 28 января 2016 г.
Легкий изврат: нерекомендованная бленда
С zoom-объективами есть одна неприятность — бленда для них рассчитывается на минимальное ФР, соответственно, для максимального оставляет желать лучшего. К счастью у моего китового объектива 18–55mm1 есть «старший брат» 55–250mm2 с тем же диаметром. Раз его минимальное ФР равно моему максимальному, бленда, рекомендованная к нему, должна подойти для фотографий на полном зуме, как минимум.
Конечно, непосредственно рекомендованную к нему фирменную я покупать не стал, а взял аналог — JJC LH-60 (LH-60C, соответствующую 18mm, тоже прикупил), на фото она и есть.
В результате эксперимента выяснилось, что использовать ее можно не только на 55mm, но на существенно меньших ФР: очевидные затемнения в уголках появляются только на 27mm примерно. Надо полагать, в случае полнокадровой камеры они бы появились раньше, но бленда-то рекомендуется для объективов с байонетом EF-S...
Под катом примеры, ни одно изображение не кадрировано.
среда, 27 января 2016 г.
Метапрограммирование в Ruby: разбор примера
Оригинал этой статьи опубликован в журнале «Системный администратор» №12 (145) за декабрь 2014.
Добавление собственных абстракций в объектную модель — это просто. И интересно.
... ... ...
Авторы книги «Programming Ruby: The Pragmatic Programmers' Guide» называют метапрограммированием расширение и изменение абстракций языка (тогда как собственно программирование пользуется теми, что есть). Конечно, можно поспорить о том, что считать такой абстракцией, а что нет, однако нельзя не заметить, что в современных динамических языках, таких как Ruby или, например, Python, легко делаются некоторые вещи, которые в классических языках находились именно на языковом уровне и жестко определялись компилятором. Тут можно вспомнить, для примера, декораторы, о которых я писал в сентябре прошлого года1. И сейчас мы рассмотрим нечто подобное. В процессе я буду делать обобщающие отступления, переходя от частного примера к общим принципам программирования в Ruby.
вторник, 26 января 2016 г.
exiftool — раскидываем raw-файлы по дате
Оказывается, сделать это не просто, а очень просто, достаточно однострочника:
exiftool -r \ '-FileName</mnt/data/iws/media/pictures/${FileType}/${DateTimeOriginal}${SubsecTimeOriginal}_${FileIndex}%-c.${FileType}' \ -d '%Y/%m/%d/%Y%m%d_%H%M%S' -ext CR2 .
Некоторое неудобство вызывают две вещи: странный формат указания параметра -FileName
и использование одного формата даты для всех переменных, из-за чего приходится запихивать в этот формат кучу разделителей, и логика, по которой составляется окончательный путь файла, оказывается разнесена в два разных параметра. Но оба неудобства непринципиальны, поскольку один раз составленный однострочник в дальнейшем используется методом копипасты.
Дополнительным примером — то же самое для JPEG (используется, если имеет смысл бэкапить обработанные):
exiftool -r \ '-FileName</mnt/data/iws/media/pictures/${FileType}/${DateTimeOriginal}-${ImageSize}%-c.${FileTypeExtension}' \ -d '%Y/%m/%d/%Hh%Mm%Ss' -ext JPG .
четверг, 14 января 2016 г.
Обновление гема wflt
Что такое wflt
см. в посте почти годичной давности «Четыре простеньких гема». Изменения касаются многострочных предупреждений, которые теперь также корректно подавляются. Раньше фильтровалась только первая строчка.