GNU Guile-CV 0.2.0

Guile-CV — это библиотека компьютерного зрения для языка программирования GNU Guile, являющаяся привязкой к библиотеке Vigra, написанной на C++, и работающая через прослойку Vigra C. Guile — реализация языка Scheme, диалекта Lisp.
Изменения в новой версии:
- Изменения пути установки
Теперь они таковы:
Где$(datadir)/guile-cv $(libdir)/guile-cv/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache$(datadir)соответствует/usr/share/share, а$(libdir)—/usr/share/lib; если указан ключ--prefix]—/ваш/префикс/shareи/ваш/префикс/libсоответственно.$(GUILE_EFFECTIVE_VERSION)заменяется на номер стабильной версии Guile, с которой собирается Guile-CV — например, 2.2.Это изменение делает GNU Guile-CV совместимой со Стандартами Кодирования GNU, но оно также подразумевает, что, если не использовать описанные ниже опции конфигурации — придётся дополнить переменные
%load-pathи%load-compiled-pathдвумя вышеуказанными путями соответственно, чтобы Guile нашёл установленные модули исходников и скомпилированные файлы Guile-CV (подробности см. в руководстве по установке Guile-CV). - Новые опции конфигурации
Добавлена опция конфигурации
--with-guile-site, использующаяся для явного указания необходимости установки исходных модулей Foliot в директорию site Guile-Gnome, а скомпилированных файлов — в директорию site-ccache (подробности см. в руководстве по установке Foliot).Опция будет учтена, только если указана в виде:
--with-guile-site=yes(в таком случае, разумеется, нет нужды расширять переменные Guile %load-path и %load-compiled-path)
- Интерфейсные изменения
Матричная версия метода
im-multiplyсделана процедуройim-mtimes. Скалярная версия переименована вim-timesи оставлена методом. То же самое произошло с методомim-multiply: он разбит на матричную процедуруim-mtimes-channelи скалярный методim-times-channel. Матричные методыim-divideиim-divide-channelпреобразованы в процедурыim-mdivideиim-mdivide-channelсоответственно. - Новые интерфейсы:
im-times(поэлементный)im-times-channelim-divide(поэлементный)im-divide-channelim-textureim-glcpim-glcm
- Улучшения производительности:
- im-mtimes
- im-mtimes-channel
- im-mdivide
- im-mdivide-channel
- im-invert
- im-invert-channel
Эти матричные операции (точнее говоря, соответствующая функциональность ядра f32vector-*) вынесены в libguile-cv. Учтите, что все выделения памяти — не считая некоторых локальных переменных в функциях — до сих пор происходят через Scheme.
Благодаря этому выносу умножение маленькой чёрно-белой матрицы с изображением 515×515 самой на себя стала выполняться за 0.028 секунд вместо 29.51 — в 134 раза быстрее.
>>> Источник
