Несколько слов об интерфейсе
Способ взаимодействия с пользователем у nip2 весьма оригинален, и к нему требуется привыкнуть. Это своеобразная таблица, каждая следующая ячейка которой - результат операции с предыдущей. И так далее: таким образом, конечный результат зависит от результатов обработки на предыдущих шагах, и при изменении любого шага автоматически пересчитывается.
Это одна из изюминок nip2. Например, вы создали некую последовательность фильтров, откадрировали и хотите быстро посмотреть фурье-спектр, но для другого изображения вместо загруженного сейчас. Легко и просто: щёлкаем правой кнопкой мыши по ячейке с исходным изображением (как правило, левое верхнее), и выбираем "Replace from file".

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

Быстрое масштабирование
Для того, чтобы изменить масштаб, совсем не обязательно искать на панели инструментов какую-то кнопку: достаточно, удерживая клавишу CTRL на клавиатуре, покрутить колёсиком мыши - и изображение в окне будет менять свой масштаб. Естественно, на оригинальном файле это не отразится.
Быстрое выделение области
Если нужно быстро выделить область интереса на изображении, достаточно зажать клавишу CTRL на клавиатуре и начать выделять мышью нужную область. Тут же будет создана новая область с названием, соответствующем текущему ряду и последнему свободному номеру ячейки (например, если ряд B и ячейка 14 последняя - новая будет называться B15).
Быстрое перемещение по изображению
Горячие клавиши в nip2
Если вы часто используете какую-то функцию, есть смысл поставить на неё горячую клавишу. Для этого открываем меню, доходим до нужной нам функции кнопками клавиатуры, подсвечиваем её (или нажимаем её кнопкой мыши и держим для подсветки) и наживаем к примеру сочетание клавиш CTRL+M - и теперь эту функцию можно вызвать по нажатию CTRL+M.
Анализ изображений в nip2
С помощью nip2 можно проводить довольно сложный анализ изображений: Фурье-анализ, корреляционный анализ, свёртка, low-pass/high-pass фильтры и прочее.
Фурье-анализ в nip2
Часто бывает необходимо видеть Фурье-спектр изображения, особенно тогда, когда к нему применяются методы обработки. Для этого идём в Toolkits - Math - Fourier - Forward для прямого фурье-преобразования. Считается оно в первый раз довольно долго, зато потом будет пересчитываться быстро.

Гистограмма изображения в nip2
Гистограмма это зависимость количества пикселей одного уровня яркости от яркости изображения - она даёт представление о том, пикселей какой яркости на изображении больше или меньше. Функция чрезвычайно полезная при анализе изображений, и, разумеется, она присутствует в nip2. Для этого выделяем изображение, которое собираемся анализировать, и идём в меню Toolkits - Histogram - Find - One Dimension.

Изменение изображений в nip2
Некоторые привычные операции, такие как кадрирование, в nip2 есть, просто они могут выглядеть, согласно философии nip2, несколько непривычно...
Кадрирование
Есть и эта операция, причём её можно делать и визуально, и имея точные координаты.
Точное кадрирование можно осуществить, либо когда вам известны координаты области, либо используя nip2 в поточном режиме (для этого следует использовать команду vips и мануал к ней). Отмечаем ячейку с изображением, которое необходимо кадрировать, и идём в Toolkits - Image - Crop. После этого появится ещё одна ячейка ниже, и
потребуется указать координаты среза.


Порог
Казалось бы, простая вещь - есть в любом уважающем себя графическом редакторе. В nip2 это тоже есть, но не так очевидно. Мне пришлось некоторое время поломать голову и проявить немного сообразительности: порог, как выясняется, можно сделать в два этапа. В nip2 есть простые статистические операции: среднее, минимум, максимум и прочее. Выделяем изображение и находим, например, среднее (Toolkits - Math - Statistics - Mean). В следующей ячейке появится число:


Склеивание изображений в nip2.
Чтобы склеить несколько изображений в одно, вовсе не нужен фотошоп - с этим прекрасно и быстро справляется nip2. Причём справляется тем лучше, чем больше изображений или фотографий нужно склеить. Например, если у вас имеются снимки со сканирующего микроскопа и нужно склеить десяток снимков - это лучше сделать в nip2. Для этого идём в меню Toolkits - Image - Join - Left to Right если хотим склеить изображения по горизонтали (левый край к правому краю) или Top to Bottom (если нужно склеить верхний край изображения к нижнему краю). Вот что при этом получается:

Пользуясь Toolbox - Image - Join, легко склеить несколько больших изображений в одно для последующего просмотра и анализа.
Корректировка перекоса яркости (tilt brightness)
Следует отметить, что при научных съёмках часто на изображениях появляется перекос яркости: когда одна часть изображения освещения сильнее другой (меняющаяся яркость от края изображения к середине). Этот достаточно неприятный эффект можно устранить в nip2 так: Tools - Filters - Tilt brightness.

Вывод посчитанных данных
Вывод посчитанных значений из nip2 делается так: открываем меню View / Workspace Definitions, и пишем:
main = A1;нажимаем "Process". После этого сохраняем Now save the workspace as "test.ws" and at the
command-line run:
$ nip2 -bp test.wsи получите свои данные в консоли.
Резюме
Здесь я привёл несколько наиболее часто используемых мной возможностей nip2 для просмотра и анализа изображений. На всякий случай, особенности сборки последних версий nip2 в Linux описаны в этом посте.
Не улавливаю практической ценности этой программы для обычного фотографа. Как она может помочь мне с обработкой RAW файлов?
ОтветитьУдалить2 Big 40wt Svetlyak пишет...
ОтветитьУдалитьНе улавливаю практической ценности этой программы для обычного фотографа.
Она вообще-то не совсем для фотографов :-) Это скорее для научных работ - nip2 это система анализа изображений.
Как она может помочь мне с обработкой RAW файлов?
Для художественных работ nip2 не предназначен. Но если приходится просматривать и анализировать 12-битные изображения - он бесценен.
Спасибо за статью! Весьма любопытно и кругозорорасширяюще. Будем знать о таком инструменте. Может когда-нибудь пригодится :)
ОтветитьУдалитьВполне может быть, что буду воспользуюсь этим инструментом во время написания диплома. Спасибо.
ОтветитьУдалить2 jetxee пишет...
ОтветитьУдалитьСпасибо за статью! Весьма любопытно и кругозорорасширяюще. Будем знать о таком инструменте. Может когда-нибудь пригодится :)
Он может пригодиться, когда придётся просматривать либо очень большие изображения, либо с нестандартной битностью - например, 12-битные сырые данные из RAW-файла. Удобно.
Так как сейчас плотно общаюсь с фотосенсорами, nip2 установил даже на лабораторные компьютеры :-)
2 x[82] пишет...
Вполне может быть, что буду воспользуюсь этим инструментом во время написания диплома. Спасибо.
Пожалуйста. Только учтите, что к интерфейсу nip2 требуется привыкание :-)
Вообще уникальная программа в своём роде. Под винду сборки искать трудно, а в Линуксе - клик-клик и готово.
А можно ли туда как-то импортировать сырые данные, в которых каждый байт (или слово) обозначают пиксель, а информация о числе байт на пиксель, высоте и ширине хранится отдельно?
ОтветитьУдалитьТакие файлы GIMP открывает как Raw image data.
Да еще бы поддержку цветового пространства YUV :)
В общем, я разбираюсь с (де)кодированием видео, в целях отладки пишу в файл то, что получается на выходе декодера, и не очень понимаю, что вижу. :)
Был бы благодарен за советы по поводу работы с этой софтиной или какой другой.
@ wl комментирует...
ОтветитьУдалитьА можно ли туда как-то импортировать сырые данные, в которых каждый байт (или слово) обозначают пиксель
Наверное да, если я всё правильно понимаю. Тот же CSV подпадает под ваше описание - и вполне себе импортируется.
Да еще бы поддержку цветового пространства YUV :)
Про цветовые пространства я не в теме. Кстати, можно автору этой программы написать - он очень общительный и отзывчивый товарищ.
разбираюсь с (де)кодированием видео, в целях отладки пишу в файл то, что получается на выходе декодера, и не очень понимаю, что вижу.
Аааа... Тогда должно открывать. Кстати, где-то в дебрях менюшек нипа видел что-то связанное с видеозахватом.
Был бы благодарен за советы по поводу работы с этой софтиной или какой другой.
У меня своя лужайка - я сырые данные с цифровых камер в nip2 анализирую. С видеоданными я не работал, так что увы.