Обновил для OpenCV 3.1

А началось всё с того что не работает CvCapture* capture = cvCreateFileCapture( filename );

capture возрашает ноль. Сука. Т.е. OpenCV отказывается воспроизводить mp4 видео.

У меня основной путь будет такой  cd /home/pavelk/Projects/OpenCV

Ставим нужные пакеты

sudo apt-get update
sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev

sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

Добавим x264 и ffmpeg по вкусу.

git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-shared --enable-pic
make
sudo make install
cd ..

git clone git://git.videolan.org/ffmpeg.git 
cd ffmpeg

./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-shared

Чёто жопой чую половину тут нафиг не надо… Пофиг пляшем.

make
sudo make install
cd ..
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install libjpeg62 libjpeg62-dev
sudo apt-get install cmake-gui

Ну и теперь клонируем наш OpenCV, собираем, ставим:

git clone https://github.com/Itseez/opencv.git OpenCV3.0
cd OpenCV3.0
export PATH=/opt/Qt/5.6/gcc_64/bin:$PATH
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/opencv/3.1/  -DWITH_QT=ON
make -j5
sudo make install

Если нужны дополнительные модули, например xfeatures2d для работы со SURF, то нужно их скачать отдельно и в параметрах компиляции указать папку с модулями:

git clone https://github.com/opencv/opencv_contrib

в параметры cmake добавить:

-DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules

Все библиотеки будут в папке /usr/local/opencv/3.0/

 

Простенький пример:

В *.pro файл проекта добавляем:

INCLUDEPATH +="/usr/local/opencv/3.1/include/"
LIBS += -L"/usr/local/opencv/3.1/lib/"
LIBS += -lopencv_core \
        -lopencv_features2d \
        -lopencv_highgui \
        -lopencv_imgcodecs \
        -lopencv_imgproc \
        -lopencv_video \
        -lopencv_videoio \
        -lopencv_videostab

Здесь мы подключаем все библиотеки OpenCV

main.cpp

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
int main() {
   namedWindow("My Image");
   Mat image = imread("K:/Projects/OpenCV HelloWorld/img.jpg");

   imshow("My Image", image);
   waitKey(5000);

    return 0;
}

Всё должно получиться =)