Файл .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.
Полный исходный код проекта доступен по ссылке.
Подписаться на:
Сообщения (Atom)