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-channel
im-divide
(поэлементный)im-divide-channel
im-texture
im-glcp
im-glcm
- Улучшения производительности:
- im-mtimes
- im-mtimes-channel
- im-mdivide
- im-mdivide-channel
- im-invert
- im-invert-channel
Эти матричные операции (точнее говоря, соответствующая функциональность ядра f32vector-*) вынесены в libguile-cv. Учтите, что все выделения памяти — не считая некоторых локальных переменных в функциях — до сих пор происходят через Scheme.
Благодаря этому выносу умножение маленькой чёрно-белой матрицы с изображением 515x515 самой на себя стала выполняться за 0.028 секунд вместо 29.51 — в 134 раза быстрее.
>>> Источник