安装OpenCV 4 on Ubuntu from source code

Install

  • mkdir build && cd build

  • cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D FORCE_VTK=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D WITH_CUBLAS=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D CUDA_NVCC_FLAGS="-D_FORCE_INLINES --expt-relaxed-constexpr" -D WITH_GDAL=ON -D WITH_XINE=ON -D BUILD_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/software/opencv_contrib-4.0.0/modules -D PYTHON3_EXECUTABLE=/home/software/miniconda3/envs/tnn/bin/python -D PYTHON3_NUMPY_INCLUDE_DIRS=/home/software/miniconda3/envs/tnn/lib/python3.6/site-packages/numpy/core/include -D PYTHON3_PACKAGES_PATH=/home/software/miniconda3/envs/tnn/lib/python3.6/site-packages ..

  1. CUDA_NVCC_FLAGS is for cuda9.0 according to Ubuntu 16.04 or 15.10 Installation Guide.
  2. PYTHON3_EXECUTABLE, PYTHON3_NUMPY_INCLUDE_DIRS, PYTHON3_PACKAGES_PATH is used to bind opencv with conda environment.
  3. OPENCV_EXTRA_MODULES_PATH is used to install opencv contrib
  • make -j $(($(nproc) + 1))
  • sudo make install
  • sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
  • sudo ldconfig
  • sudo apt update

python binding for opencv (optionally)

  • cd /home/software/miniconda3/envs/tnn/lib/python3.6/site-packages

  • ln -s /usr/local/python/cv2/python-3.6/cv2.cpython-36m-x86_64-linux-gnu.so cv2.cpython-36m-x86_64-linux-gnu.so

  • reboot


In [1]: import cv2

In [2]: cv2.__version__
Out[2]: '4.0.0'

work with CMake

// DisplayImage.cpp
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char **argv) {
    if (argc != 2) {
        cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
        return -1;
    }

    Mat image;
    image = imread(argv[1], IMREAD_COLOR);   // Read the file

    if (!image.data)                              // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }

    namedWindow("Display window", WINDOW_AUTOSIZE);// Create a window for display.
    imshow("Display window", image);                   // Show our image inside it.

    waitKey(0);                                          // Wait for a keystroke in the window
    return 0;
}
# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(DisplayImage)
set(CMAKE_CXX_STANDARD 11)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
message(${OpenCV_INCLUDE_DIRS})

add_executable(DisplayImage DisplayImage.cpp)
target_link_libraries(DisplayImage ${OpenCV_LIBS})
message(${OpenCV_LIBS})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值