Skip to content

Instantly share code, notes, and snippets.

@mribbons
Created October 24, 2024 10:11
Show Gist options
  • Select an option

  • Save mribbons/d52baa4d1a2b3a903dd9800a61d817e5 to your computer and use it in GitHub Desktop.

Select an option

Save mribbons/d52baa4d1a2b3a903dd9800a61d817e5 to your computer and use it in GitHub Desktop.

OpenCV / C++ Setup / Ubuntu / vscode

sudo apt install -y --no-install-recommends git build-essential gdb cmake ninja-build
sudo apt-get install -y --no-install-recommends libpng libjpeg-turbo libwebp tiff openexr jasper openblas zlib ffmpeg
sudo apt-get install -y --no-install-recommends \
libgtk2.0-dev \
pkg-config \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libeigen3-dev \
libgflags-dev \
libgoogle-glog-dev \
libhdf5-dev

sudo apt-get install libgflags-dev protobuf-compiler libprotobuf-dev

mkdir opencv ~/opencv470
cd ~/opencv470
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.7.0
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.7.0
code .

Open new shell in new vscode window:

code .vscode/settings.json
{
    "cmake.configureSettings": { 
        "BUILD_opencv_python3": "OFF", 
        "CMAKE_INSTALL_PREFIX": "/home/mribbons/opencv470/install",
        "OPENCV_EXTRA_MODULES_PATH": "/home/mribbons/opencv470/opencv_contrib/modules",

        "DBUILD_TESTS": "OFF",
        "DBUILD_PERF_TESTS": "OFF",
        "DBUILD_EXAMPLES": "OFF",
        "DBUILD_opencv_apps": "ON",
        "OPENCV_DOWNLOAD_PATH": "/home/mribbons/opencv470/downloads",
    }
}
echo export OpenCV_DIR="~/opencv470/install" >> ~/.bashrc
mkdir ~/hello_opencv
code ~/hello_opencv

CMakeLists.txt:

cmake_minimum_required(VERSION 3.5)

PROJECT(ProjectName)
SET(CMAKE_CXX_STANDARD 20)

# Ensure OpenCV_DIR environment variable is specified

if(MSVC)
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
endif()

find_package( OpenCV REQUIRED )

include_directories( ${OpenCV_INCLUDE_DIRS})

MACRO(add_example name)
  ADD_EXECUTABLE(${name} ${name}.cpp)
  TARGET_LINK_LIBRARIES(${name} ${OpenCV_LIBS} )
ENDMACRO()

add_example(project)

.vscode/settings.json:

{    
    "cmake.configureSettings": { 
        "OpenCV_DIR": "/home/mribbons/opencv470/install",
        "CMAKE_PREFIX_PATH": "/home/mribbons/opencv470/install"
    }
}

TODO - Sample main.cpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment