1. OpenCV шаг за шагом. Введение.
2. Установка под Windows
Установка OpenCV под OC Linux
Рассмотрим процесс установки библиотеки OpenCV под ОС Linux на примере дистрибутива Ubuntu 10.10, но с незначительными вариациями должно сработать и под другими дистрибутивами (проверялось под Debian, ALT Linux).
Для установки OpenCV нужно скачать (UPD: официальный сайт) архив с исходными текстами.
Скачаем последнюю (на данный момент) версию:
OpenCV-2.2.0.tar.bz2
Сборка проекта осуществляется с помощью CMake (требуется версия 2.6 или выше).
Можно установить CMake в виде пакета
sudo apt-get install cmake
apt-cache show cmake
говорит, что сейчас доступна версия 2.8.2
, либо из исходников. Для этого нужно скачать архив cmake-2.8.3.tar.gz с официального сайта cmake.org
сборка и установка CMake осуществляется без проблем:
tar -zxf cmake-2.8.3.tar.gz cd cmake-2.8.3 ./configure make make install
далее, для отображения окошек OpenCV требуется установленная библиотека GTK+ 2.x или выше, в том числе заголовочные файлы (libgtk2.0-dev)
устанавливаем:
apt-get install libgtk2.0-dev
теперь можно собрать саму библиотеку OpenCV
tar -xjf OpenCV-2.2.0.tar.bz2 cd OpenCV-2.2.0 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ./ make make install
попробуем собрать примеры, которые идут в составе библиотеки:
cd samples/c/ chmod +x build_all.sh ./build_all.sh
зпустим один из примеров:
./delaunay
здесь вы увидите либо красивую картинку, либо ошибку
error while loading shared libraries: libopencv_core.so.2.2: cannot open shared object file: No such file or directory
— это значит, что программа не может найти требуемые библиотеки, пропишем их путь:
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
здесь может выявиться ошибка:
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /usr/src/OpenCV-2.2.0/modules/highgui/src/window.cpp, line 274 terminate called after throwing an instance of 'cv::Exception' what(): /usr/src/OpenCV-2.2.0/modules/highgui/src/window.cpp:274: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow
— это значит что вы забыли установить заголовочные файлы GTK+ 2.x: libgtk2.0-dev — выполните установку этого пакета и заново пересобирите OpenCV.
После установки заголовочные файлы OpenCV находятся в каталоге:
/usr/local/include/opencv
, а библиотечные файлы лежат в:
/usr/local/lib
Попробуем самостоятельно собрать программу с OpenCV:
test.cpp
// // for testing // // robocraft.ru // #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]) { IplImage* image=0, *dst=0; // имя картинки char filename[] = "Image0.jpg"; // получаем картинку image = cvLoadImage(filename, 1); printf("[i] image: %s\n", filename); assert( image != 0 ); // покажем изображение cvNamedWindow( "image"); cvShowImage( "image", image ); // ждём нажатия клавиши cvWaitKey(0); // освобождаем ресурсы cvReleaseImage(& image); cvReleaseImage(&dst); // удаляем окна cvDestroyAllWindows(); return 0; }
Makefile
CC := g++ CFLAGS := -I/usr/local/include/opencv -L/usr/local/lib OBJECTS := LIBRARIES := -lopencv_core -lopencv_imgproc -lopencv_highgui .PHONY: all clean all: test test: $(CC) $(CFLAGS) -o test test.cpp $(LIBRARIES) clean: rm -f *.o
остаётся выполнить команду
make
и получить исполняемый файл test
результат:
Ссылки
http://cmake.org
http://opencv.willowgarage.com/wiki/InstallGuide_Linux
http://opencv.willowgarage.com/wiki/CompileOpenCVUsingLinux
13 комментариев на «“OpenCV шаг за шагом. Установка OpenCV под OC Linux”»
Ещё заметочка:
Чтобы не вбивать каждый раз сточку $ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
в консоль, можно вбить в .bashrc
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
без этого можно обойтись, если прописать в Makefile в качестве флагов компилятора вот такую строчку:
Помогите пожалуйста подружить python с opencv on MacOSLeopard, opencv собрал ( cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON), import cv не работает, может еще пути какие-то нужно указать.
Спасибо!
при запуске Makefile пишет
Спасибо за подробную инструкцию!
http://www.raspberrypi.org/phpBB3//viewtopic.php?f=84&t=36120
Ставил opencv-2.4.5 на малинку, все ок
Еще пользовался этим (может поможет таким же нубам как я)
https://gist.github.com/jonatw/5524844
Добрый день.
Читаю ваш блог и параллельно знакомлюсь Qt.
Хотел бы поделиться, что для запуска программ в Qt необходим следующий файл проекта (name.pro), вместо Makefile описанного выше:
TEMPLATE = app
TARGET =
DEPENDPATH += /usr/local/lib
INCLUDEPATH += /usr/local/include/opencv
LIBS += -lopencv_core
LIBS += -lopencv_imgproc
LIBS += -lopencv_highgui
# Input
SOURCES += main.cpp
П.С. Огромное спасибо за блог!
Тестовая программа с ошибкой.
В исходнике чтение производится из файла Image0.jpg, а не из параметра командной строки. Надо скоректировать либо исходник либо описание к нему и скриншот.
И ещё один момент в Linux для названия исполняемого файла «test» лучше не использовать. Такая программа уже есть и она стандартная. Но это мелочи конечно.
А что значат эти строки:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ./
При установке на Ubuntu 11.04 Natty Narval появляется ошибка
Вот найденное решение:
1. Заходим в папку OpenCV-2.2.0/modules/highgui/src
2. В файле cap.cpp
заменяем строчку 174
на
3. В файле cap_v4l.cpp
заменяем строчку 217
на
4. Пересобираем.
Вот блин! Теперь не работает камера! Что-то всё не так на 11.04…
Здрасти все!
У меня fedora 15 и я имел схожие проблемы:
1) error: ‘ptrdiff_t’ does not name a typeнашел в сети :
Решение
добавить
в
2) Отсутствует linux/videodev.h
Решение, которое помогло мне:
а) Установить libv4l libv4l-devel
б) Сделать симлинк
ну или в файле cap_v4l.cpp строчку
заменить на
ps: для других дистрибутивов думаю будет аналогично.
Нашлась и для второй проблемы нашласьссылочка
В ней:
+PS: экспортнул PYTHONPATH="/usr/local/lib/python2.7/site-packages/:$PYTHONPATH", но увы выдает обшибку ->
Подскажите как быть?!