8/08/2006

Научные программы в Linux: обработка изображений

В Linux очень комфортно чувствуют себя люди с исследовательской чертой в характере - поэтому он так распространён среди физиков, математиков, геологов, химиков и научных работников других специальностей. Не удивительно, что научных программ в Linux великое множество, и часть из них присутствует в Debian GNU/Linux.

Так как я занимаюсь цифровой оптикой, то больше знаю о программах для обработки изображений. Ниже приведён их список с комментариями, полужирное выделение - значит есть в Debian GNU/Linux.


Оформление научных статей: LaTeX (пакет tetex и шрифты к нему), оболочка Kile, LyX, TexMaker.
Если в тексте есть больше одной формулы или ссылки на литературу - следует использовать для этого специализированный инструмент, который создан и заточен специально для этого. Изобретать велосипеды с использованием "визуальных" редакторов - значит тратить свои нервы, ресурсы и силы понапрасну.
Ссылки: Описание установки ЛаТеХа, оболочек Kile, LyX, TexMaker. Пакеты расширений для ЛаТех.


Средство работы с библиографией
: BibTeX, Оболочка JabRef (есть пакет для Дебиана, программа под GPL, основана на Java – поэтому в дистрибутиве нет, но скачать вместе с Java-машиной можно).
Когда количество ваших литературных источников перевалит за полсотни, просто перечислять их в конце документа LaTeX будет утомительно, и, кроме того, трудно их выставить по порядку обращения.
Ссылки: Описание установки JabRef и работы с ним.


Численное моделирование: Octave или MATLAB for UNIX (для всех и Линукса в том числе). Программы, написанные в MATLAB, отчасти будут запускаться в Октаве, но... Октаву придётся долго доводить напильником неизвестной мне конфигурации. Как альтернатива - да, как рабочий инструмент - только если рядом есть знакомый октавист. Ссылки: Описание установки MATLAB.


Символьные расчёты: Maple for Linux или Maxima.
Иногда требуется символьно взять интеграл или найти производную. Для простых вещей есть своя голова, для более сложных - запрячь компьютер и MAXIMA. Maple поставить можно - есть линуксовая версия.


Построение графиков: GNUplot + писать для него скрипты на Perl/Bash.
Много программ я пересмотрел для построения графиков - и все они убоги, в том числе навороченные, но до ужаса неэффективные монстры типа Origin. Не так давно мне пришлось строить очень много графиков - сотню. Для разных результатов, с различными подписями по осям и греческими символами в заголовках. Час на написание и отладку Perlового скрипта и 5 секунд работы программы.
Ссылки: Построение научных графиков в GNUplot.


Создание нейросетей: Genesys.
Имитатор нейронных сетей общего назначения. Пока не использовал, но говорят о нём очень уважительно.


Графический редактор для огромных изображений:
nip2.
Специализированный профессиональный графический редактор для анализа огромных изображений. Таблично-ориентированный интерфейс, быстрые алгоритмы обработки изображений. Создавался для Национальной Галлереи в Лондоне.
Ссылки: О программе nip2 и её возможностях.


Поточная обработка изображений:
ImageMagick.
Это пример того, что называется CLI Magic. Нужно в огромном количестве изображений поднять гамму, повысить резкость и перевести в ч\б. ImageMagick и за полчаса написанный скрипт за минуту выполнит полугодовую работу.
Ссылки: Работа с ImageMagick - описание ключей для программы.

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

11 комментариев:

  1. Странно, что ты, работающий с графикой да еще и использующий LaTeX, не упомянул METAPOST :)

    ОтветитьУдалить
  2. Ждем CAD'ы.
    Аналоги Компас,СолидВоркс,ТФлекс,АвтоКАД.
    8-)
    Вот так.

    ОтветитьУдалить
  3. "не упомянул METAPOST"
    А это потому, что я о нём не в курсе :-) Спасибо большое - похоже, ценная вещь. Слона я, как водится, не заметил.
    После того, как с ней разберусь, обязательно поправлю пост. Ещё раз спасибо.

    "Ждем CAD'ы."
    Думаю об этом - с ними мало общаюсь, но чувствую скоро, что придётся. Работал только в qcad, но в Sarge входит только бета-версия, весьма глюкавая и недоделанная.
    Кстати, многоуважаемый anonymous, я замечаю, что вы уже не в первый раз комментируете (и очень конструктивно, что важно) мои посты - может быть, представитесь? :-)

    ОтветитьУдалить
  4. http://linuxrsp.ru/artic/kon/LinuxandCAD.html
    На вскидку.
    Вот так.

    ОтветитьУдалить
  5. к сожалению, gnuplot не совместим с 3D графиками. старый (12.1) варезный матлаб строит их гораздо быстрее.

    ОтветитьУдалить
  6. 2"REDkiy"
    Спасибо за ссылки. Как-нибудь ближе к сентябрю посмотрю на CADы. Сейчас разбираюсь с новым QEMU, описанием установки Дебиан "с нуля" и MPlayer.

    "к сожалению, gnuplot не совместим с 3D графиками."
    Это почему же? Поверхности строить он умеет, и делает это совсем не плохо. Главное, что не все данные получаются в MATLAB. Надеюсь, не надо говорить, сколько стоит на MATLAB лицензия? У нас институт в своё время едва смог себе это позволить...

    Кстати, скоро запостю описание того, как быстро и легко строятся двухмерные графики в GNUplot (трёхмерные мне пока не требовались, но строятся не намного сложнее).

    ОтветитьУдалить
  7. "Это почему же? Поверхности строить он умеет, и делает это совсем не плохо"

    К сожалению, он делает это плохо и медленно. Попробуйте растянуть окно с графиком мышкой. На моем домашнем АМД 2 ГГц + suse 10.0 перерисовка окна и самого 2D графика занимает секунд 20. Это единственная причина, которая удерживает меня от полного перехода на octave.

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

    "Главное, что не все данные получаются в MATLAB. Надеюсь, не надо говорить, сколько стоит на MATLAB лицензия?"

    Неужели рубэпа боитесь? :)
    И как это - не все данные получаются в матлаб? Что не получается? :)

    "скоро запостю описание того, как быстро и легко строятся двухмерные графики в GNUplot "

    Ждем :)

    ОтветитьУдалить
  8. "К сожалению, он делает это плохо и медленно. Попробуйте растянуть окно с графиком мышкой."

    Мышкой? Графики GNUplot? Мне это даже в голову не пришло :-) Я строю графики поточно, т.е. много - десятками штук, и сразу в PS. Мне не нужно на них любоваться - я и так знаю, что на них :-) Есть куча рядов данных, и по ним надо строить графики - плоские, двухмерные, и очень много. И сразу их использовать в документах LaTeX.

    "Это единственная причина, которая удерживает меня от полного перехода на octave."

    А вы смогли довести Octave напильником до своих нужд!? Если не секрет - что вы в ней делаете? :-)

    "К тому же изучать построенный график в матлабе гораздо удобнее. Там есть кнопочки :)"

    Не спорю - конечно удобней. И кнопочки есть :-) Но опять-таки - в моём случае кнопочки только мешают.

    "Неужели рубэпа боитесь? :)"
    А как же. И потом, крупный институт - а программы пиратские. Не хорошо. нас вон тут мелко$офт окучивает... Так что MATLAB и всё прочее не воруем - у нас корпоративная лицензия.

    "И как это - не все данные получаются в матлаб? Что не получается?"

    Есть данные, которые получаются в результате работы (обсчёта) другими программами и скриптами. Есть данные, снимаемые непосредственно с оптической установки. И потом, на графиках должны быть символы греческого алфавита, русский язык и переобозначение отсчётов по осям. Чем выкаблучиваться с MATLAB, проче в GNUplot. И быстрее, что важно.

    "Ждем"
    Присылайте свои примеры, если что - с удовольствием на них поучусь :-)

    ОтветитьУдалить
  9. "Я строю графики поточно, т.е. много - десятками штук, и сразу в PS. Мне не нужно на них любоваться - я и так знаю, что на них :-)"

    У меня каждый раз что-то новое вылазит :)

    "А вы смогли довести Octave напильником до своих нужд!? Если не секрет - что вы в ней делаете? :-)"

    Как ни странно, но она у меня встала и... заработала. Контролирую поведение атомов в расчетной ячейке, чтобы они там бучу не устраивали :)

    Для построения 2D есть программа kpl, которая может обновлять график через заданные промежутки времени. Иногда это бывает удобно.

    "А как же. И потом, крупный институт - а программы пиратские. Не хорошо. нас вон тут мелко$офт окучивает... Так что MATLAB и всё прочее не воруем - у нас корпоративная лицензия."

    Везёт вам :)

    "Есть данные, которые получаются в результате работы (обсчёта) другими программами и скриптами.
    Есть данные, снимаемые непосредственно с оптической установки. И потом, на графиках должны быть символы греческого алфавита, русский язык и переобозначение отсчётов по осям. Чем выкаблучиваться с MATLAB, проче в GNUplot. И быстрее, что важно."

    Скрипты можно писать и в матлабе. Единственное, чего мне не хватает для их отладки и редактирования - нормальный GUI (как и в октаве). Для октавы я не смог прикрутить ни один из тех, что нашел (типа yaog) :(

    Всё, что Вы сказали - не проблема в матлабе. Ещё один плюс для меня - там есть редактор свойств графика wysiwyg, который важен в задачах, где не знаешь, чтО хочешь получить :) Насчет быстрее - быстрее всегда оказвается то, чем уже владеешь.

    ОтветитьУдалить
  10. "Как ни странно, но она у меня встала и... заработала."
    Я немного не об этом. Просто скрипты загрузки и сохранения изображений в Октаве сильно уступают таким же в Матлабе. Увы, приходится пользоваться Матлабом, т.к. на обработку напильником октавы просто нет времени.

    "Для построения 2D есть программа kpl, которая может обновлять график через заданные промежутки времени. "
    Т.к. у меня нет KDE, то об этой программе я не знал. Спасибо. Посмотрю.
    Мне GNUplot очень люб, т.к. надо делать мухобойную работу по строительству кучи графиков для статей. Очень удобно: поставил перловый скрипт, и он всё сделает. Может, его сюда кину - чтобы не забыть самому в будущем. :-)

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

    "Единственное, чего мне не хватает для их отладки и редактирования - нормальный GUI"
    Хм... мне хватает редактора Kate с подсветкой синтаксиса. Хотя я старый ретроград. Вон тов. elipse знает :-))

    "Всё, что Вы сказали - не проблема в матлабе."
    Не сомневаюсь. Но графики иногда надо строить не только по матлабовским данным. Короче, скрипты уже написаны, GNUplot уже осваивается - "поздно, Дубровский, я замужем" :-)

    ОтветитьУдалить
  11. очень хороший биндинг к гуи у R (это пакет статистики)

    ОтветитьУдалить