Файл .pro, создаваемый программой QtCreator содержит инструкции как собирать проект основные команды
SOURCES - исходники
HEADERS - заголовки
TEMPLATE - шаблон проекта например app или lib
INCLUDEPATH - путь к используемым заголовкам
LIBS- используемые библиотеки
Так-же имеется куча дополнительных полезныхкомманд
CONFIG - это самое общая и полезная команда для автоматической конфигурации проекта в переменную конфиг можно записать все что угодно и дальше проверять что храниться в конфиге
Например CONFIG += plugin opencv qwt
MOC_DIR - директория куда будем складывать moc файлы, созданные qmake
OBJECTS_DIR - директория куда будут сохранены объекты
DEFINES - добавляет инструкцию препроцессора
Пример DEFINES+= USEOPENCV
далее в коде:
#ifdef USEOPENCV
//DO SMTH
#endif
ключевые слова
win32 - сборка происходит для Windows
unix - сборка проекта для Linux
debug - сборка проекта в режиме отладки
release - сборка проекта в релиз режиме
Рассмотрим пример подключение OpenCV для Linux и Windows
OPENCVDIR = "C:/Develop/opencv-1.0.x/opencv" #Директория в которой лежит OpenCV
win32:{ #Если сборка под windows
opencv{ #если в CONFIG мы добавили CONFIG+=opencv
exists($$OPENCVDIR) {#Проверка существует ли директория
DEFINES += USEOPENCV #Добавляем define
INCLUDEPATH += $${OPENCVDIR}/cv/include \ #Путь к заголовкам
$${OPENCVDIR}/cxcore/include \
$${OPENCVDIR}/otherlibs/highgui
LIBS += -L$${OPENCVDIR}/lib \ #Путь к библиотекам
-lcv \
-lcxcore \
-lhighgui
}
}
}
unix:{ #В случае Linux все проще т.к. все библиотеки и заголовки обычно лежат в системных папках
opencv{
LIBS += -lcv \
-lcxcore \
-lhighgui
message("OpenCV libraries connected") #Сообщение о том что все подключено
}
}
Естественно такой громоздкий код не охота включать в каждый проект (особенно если проект состоит из множества частей например с плагинами)
Для этого придуманы файлы .pri
Создаете файл .pri, копируете в него настройку сборки и подключаете к pro файлу коммандой
include
Пример:
include(EthoStudioSDK/ethostudioconfig.pri )
Вроде все. Удачи!
Данный блог - мои замечания касающиеся тем технического зрения. В данном блоге я буду выкладывать свои находки, инструкции и что у меня получилось.
понедельник, 14 февраля 2011 г.
четверг, 10 февраля 2011 г.
Kinect Player
A Cross Platform Application for recording/viewing 3d data from kinect sencor.
Source are avalable at http://code.google.com/p/kinect-player
Binaries form Win32 http://kinect-player.googlecode.com/files/kinect-player.zip
Чтобы собрать проект потребуется Qt 4.7.1, Qt Creator, OpenCV2.2 и Libfreenect (Все должны быть собраны одной версией MinGW) сборка под Linux не должна вызвать проблем.
Программа позволяет записывать и просматривать 3д данные с сенсора Кинект. Вращать камеру вокруг сцены и т.д.
Иконка кинекта взята у
http://www.michaelcritz.com/2011/01/28/kinect-icon/
Source are avalable at http://code.google.com/p/kinect-player
Binaries form Win32 http://kinect-player.googlecode.com/files/kinect-player.zip
Чтобы собрать проект потребуется Qt 4.7.1, Qt Creator, OpenCV2.2 и Libfreenect (Все должны быть собраны одной версией MinGW) сборка под Linux не должна вызвать проблем.
Программа позволяет записывать и просматривать 3д данные с сенсора Кинект. Вращать камеру вокруг сцены и т.д.
| Рабочее окно программы |
| Тоже окно под другой перспективой |
Иконка кинекта взята у
http://www.michaelcritz.com/2011/01/28/kinect-icon/
вторник, 8 февраля 2011 г.
Преобразование картинки из Libfreenect в cv::Mat
Решил написать маленькую заметку по поводу использования libfreenect и ее варпера для c freenect_sync
Mat frame; frame.create(cv::Size(640,480),CV_8UC3); Mat depth; depth.create(cv::Size(640,480),CV_16UC1); uint32_t ts; char *rgb = 0; short *depths=0; freenect_sync_get_video((void**)&rgb,&ts,0,FREENECT_VIDEO_RGB); freenect_sync_get_depth((void**)&depths, &ts, 0, FREENECT_DEPTH_11BIT); memcpy(frame.data,rgb,FREENECT_VIDEO_RGB_SIZE); memcpy(depth.data,depths,FREENECT_DEPTH_11BIT_SIZE);
понедельник, 7 февраля 2011 г.
Компрессор для Kinect данных
Задача: сохранить цветное изображение RGB (24 бита на пиксель) + глубинное изображение 16 бит на пиксель. Изображения сохраняются в файл (глубинное изображение - без потерь PNG компрессором), цветное с потерями JPEG компрессором.
Для решения использовались функции из библиотеки OpenCV 2.2.
Полный исходный код проекта доступен по ссылке.
Для решения использовались функции из библиотеки OpenCV 2.2.
Полный исходный код проекта доступен по ссылке.
воскресенье, 23 января 2011 г.
Текущие работы
Решил написать о том какие проекты сейчас идут в лаборатории цифровой обработки изображений ИАиЭ СО РАН.
EthoStudio - система для автоматизации этологических экспериментов. Применяется для изучения эффектов различных препаратов на животных. Интерфейс разработан на Qt, содержание использует OpenCVи другие бесплатные открытые библиотеки.
Сайт проекта временно находится в разработке www.ethostudio.com
Применяется в: ИЦиГ СО РАН, ЛИН СО РАН, институте физиологии им. Павлова РАН.
XScan - программное обеспечение для системы для досмотра пассажиров в аэропорта. Позволяет захватывать изображения с аппарата СибСкан (разработанном в ИЯФе), обрабатывать их, представлять оператору и сохранять в БД или жесткий диск.
Применяется в: Толмачева, Домодедово, Ханты-Мансийском аэропорту, саудовской аравии и т.д.
Есть еще несколько проектов в стадии зачатков... Но по всем проектам есть интересная работа.
EthoStudio - система для автоматизации этологических экспериментов. Применяется для изучения эффектов различных препаратов на животных. Интерфейс разработан на Qt, содержание использует OpenCVи другие бесплатные открытые библиотеки.
Сайт проекта временно находится в разработке www.ethostudio.com
Применяется в: ИЦиГ СО РАН, ЛИН СО РАН, институте физиологии им. Павлова РАН.
| Скриншот программы EthoStudio |
XScan - программное обеспечение для системы для досмотра пассажиров в аэропорта. Позволяет захватывать изображения с аппарата СибСкан (разработанном в ИЯФе), обрабатывать их, представлять оператору и сохранять в БД или жесткий диск.
Применяется в: Толмачева, Домодедово, Ханты-Мансийском аэропорту, саудовской аравии и т.д.
| Скриншот программы XScan |
вторник, 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
Наслаждайтесь!
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 изображение сцены |
![]() |
| Глубинное изображение и цветное |
воскресенье, 9 января 2011 г.
Джентельменский набор библиотек и технологий
Библиотеки для систем основанных на техническом зрении
OpenCV - библиотека алгоритмов компьютерного зрения
Qt - библиотека пользовательского интерфейса
MRPT - программный набор компонент для робототехники
ROS - надстройка над операционной системой для робототехники
Itk - инструменты для работы с медицинскими изображениями
FreeImage - загрузка и выгрузка изображений
Полезные библиотеки
Boost - Библиотека шаблонов для C++
IrrLicht - библиотека для 3Д рисования
OpenCL - ускорение и распараллеливание вычислений на GPU
OpenCV - библиотека алгоритмов компьютерного зрения
Qt - библиотека пользовательского интерфейса
MRPT - программный набор компонент для робототехники
ROS - надстройка над операционной системой для робототехники
Itk - инструменты для работы с медицинскими изображениями
FreeImage - загрузка и выгрузка изображений
Полезные библиотеки
Boost - Библиотека шаблонов для C++
IrrLicht - библиотека для 3Д рисования
OpenCL - ускорение и распараллеливание вычислений на GPU
Подписаться на:
Сообщения (Atom)

