вторник, 11 января 2011 г.

Сборка libfreenect с помощью MinGW под Windows Vista

1. Релиз библиотеки libfreenect с git репозитория

2. Загружаем зависимости
2.1. Библиотеку работы с USB (libusb) [прямая ссыла]
2.2. Библиотеку для работы с потоками (pthreads) [прямая ссыла]
2.3. Библиотеку для отображения 3Д glut32 (расширение OpenGL) [прямая ссылка]

Распаковываем файлы

Glut32 распаковываем и добавляем в MinGW
glut.h в директорию {MinGW}/include/GL
glut32.lib и glut32.dll в директорию {MinGW}/lib

{MinGW}  - директория где установлена MinGW (Например C:/MinGW)

Запускаем CMake
Выбираем директорию в которую распаковали libfreenect и директорию куда будем собирать проект.

Нажимаем Configure (вбираем MinGW, компиляторы gcc и g++) - он выдаст много ошибок.
Поставьте галочку Andvanced в верхней части настроек MinGW.
Устанавливаем значение переменных
GLUT_INCLUDE_DIR - {MinGW}/include/GL
GLUT_glut_LIBRARY - {MinGW}/lib/glut32.dll
LIBUSB_1_INCLUDE_DIR - {libusb-win32-bin-1.2.2.0}\include
LIBUSB_1_LIBRARY - {libusb-win32-bin-1.2.2.0}\lib\gcc\libusb.a
THREAD _PTHREAD_INCLUDE_DIR - {PThreads}/Pre-built.2/include
THREAD_PTHREAD_WIN32_LIBRARY - {PThreads}/Pre-built.2/lib/libpthreadGC2.a

отключаем опцию BUILD_FAKENECT (с ней проект почему-то не собирается)

Далее жмем Configure. Если все хорошо жмем Generate.

Перед компиляцией надо устранить одни глюк: в MinGW/include/sys/types.h есть строка
typedef _ssize_t ssize_t; - ее надо закоментить.
Заходим с командной строки в директорию которую выбрали в CMake и запускаем mingw32-make
Ждем...
Ура все получилось.
Чтобы запустить пример из bin необходимо скопировать в эту папку целый букет dll.

glut32.dll
libfreenect.dll
libusb0.dll   (примечание исходное название библиотеки libusb0_x86.dll)
pthreadGC2.dll

Наслаждайтесь!
3D изображение сцены

Глубинное изображение и цветное

2 комментария:

  1. Каково практическое применение данной программы?

    ОтветитьУдалить
  2. Много применений: например реконструкция пространства, построение 3Д моделей, управление роботами.

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