|
|||||||
Минимальный пример для проверки сборки проекта с библиотекой OpenCV
Время создания: 20.11.2017 16:47
Автор: Xintrea
Текстовые метки: linux, debian, opencv, сборка, c++, cmake, make
Раздел: Компьютер - Программирование - Компьютерное зрение
Запись: xintrea/mytetra_syncro/master/base/1511185626eg0rwotbjq/text.html на raw.github.com
|
|||||||
|
|||||||
Установка OpenCV в Debian Linux ... делается простой командой: apt-get install libopencv-dev Данный пакет потянет за собой и установку бинарников библиотек OpenCV. Чтение изображения из файла и отображение его на экране Код минималистичного примера следующий (во избежении лишних вопросов: да, имя файла с большой буквы): Файл Main.cpp #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include "Main.h" int main (int argc, char *argv[]) { cv::Mat image=cv::imread("lena.png"); if(image.empty()) { std::cerr << "Could not load image"; return 1; } cv::namedWindow("Image"); cv::imshow("Image", image); cv::waitKey(); return 0; } Необязательно, но можно сделать на будущее файл main.h: Файл Main.h #ifndef __MAIN_H__ #define __MAIN_H__ #define PROGRAM_VERSION 1 #define PROGRAM_SUBVERSION 0 #endif // __MAIN_H__ Файл конфигурации системы сборки Cmake: Файл CMakeLists.txt cmake_minimum_required(VERSION 2.6) # Debug or release # set(CMAKE_BUILD_TYPE Debug) set(CMAKE_BUILD_TYPE Release) set(PROJECT opencvstart) project(${PROJECT}) # Find OpenCV, instead handly write library name to link_libraries() option find_package( OpenCV REQUIRED ) set(HEADERS Main.h ) set(SOURCES Main.cpp ) link_libraries( X11 pthread) # Add souce file to project for compile add_executable (${PROJECT} ${HEADERS} ${SOURCES}) target_link_libraries( ${PROJECT} ${OpenCV_LIBS} ) Компиляция и запуск Выполняются команды в каталоге с файлами проекта: cmake . make В cmake через пробел пишется точка, это нужно чтобы сгенерировался makefile именно для проекта в текущем каталоге. Потребуется так же изображние lena.png. Можно взять откуда угодно, например с Википедии. Результат: Трансформация изображения Методы трансформации изображений находятся в библиотеке imgproc. Поэтому в начало файла надо добавить: #include <opencv2/imgproc/imgproc.hpp> Самая простая трансформация - это размывка картинки. В функцию main(), после команд считывания изображения можно добавить команду: cv::blur(image, image, cv::Size(10,10)); После чего выводимое изображение будет размыто фильтром blur. Размер матрицы блура будет 10x10. Борьба с предупреждением Couldn't register with accessibility bus В момент запуска программы, в консоль будет выдаваться предупреждение: ** (Image:11148): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. Обсуждение этой ошибки здесь: https://bbs.archlinux.org/viewtopic.php?id=176663 Для устранения предупреждения, можно в файле /etc/environment прописать команду: export NO_AT_BRIDGE=1 После чего предупреждение должно исчезнуть. Связано оно с каким-то несоответствием версий GTK библиотек. Где брать документацию Официальная страница с документацией находится здесь: https://docs.opencv.org/2.4/index.html |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|