Try   HackMD

Ubuntu install c++ version of OpenCV + opencv_contrib

  • simple install OpenCV (不能指定版本>不推薦)
sudo apt-get install libopencv-dev
  • install dependency package
sudo apt-get install gcc g++ cmake pkg-config build-essential
sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff5-dev libswscale-dev libjasper-dev
  • download the opencv package (use 3.4 version)
cd ~
git clone https://github.com/opencv/opencv.git
  • configure OpenCV
cd opencv 
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local ..
  • make OpenCV
make -j4
sudo make install
  • configure pkg-config
sudo vim /etc/ld.so.conf
加入: /usr/local/lib
sudo ldconfig -v
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  • check opencv version
pkg-config --modversion opencv4
  • configure opencv_contrib
cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.5/modules ..
  • make opencv_contrib
make -j4
sudo make install

  • libopencv_core.so.3.4: cannot open shared object file: No such file or directory
sudo find / -name "libopencv_core.so.3.4"
sudo vim /etc/ld.so.conf.d/opencv.conf
加入: /usr/local/lib or /usr/local/lib/x86_64-linux-gnu
sudo ldconfig -v

  • sample code
#include <opencv2/highgui.hpp> #include <iostream> int main( int argc, char** argv ) { cv::Mat image; image = cv::imread("lena.jpg",cv::IMREAD_COLOR); if(! image.data) { std::cout<<"Could not open file" << std::endl; return -1; } cv::namedWindow("lena", cv::WINDOW_AUTOSIZE); cv::imshow("lena", image); cv::waitKey(0); return 0; }