文章目录
- ubuntu系统安装opencv
- 1.下载opencv和opencv_contrib
- 2.安装指导
- 3.Linux 下 fatal error: opencv2/opencv.hpp: 没有那个文件或目录
- 4.g++ 和cmake 编译使用opencv的程序
- 5.opencv,eigen速度比较
- 6.opencv常用类型符号
- 7.获取opencv matiax 的指针
ubuntu系统安装opencv
1.下载opencv和opencv_contrib
下载地址:
https://blog.csdn.net/qq_43193873/article/details/126144636
这个链接的教程是 说把 opencv_contrib放入opencv文件夹里面,然后进行编译,可能会有问题。
这里只下载好即可。
2.安装指导
如何设置编译选项,比如使用openmp编译,tbb编译,cuda等
安装参考下面链接
1OpenCV installation overview、OpenCV configuration options reference、Installation in Linux
这个教程提出 opencv_contrib 和 opencv并行。
文件夹如下格式:
使用下面的编译指令,打开 tbb,openmp等并行库
DCMAKE_INSTALL_PREFIX 设置安装的路径,进入build
cmake ../opencv-4.6.0 /
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules /
-DCMAKE_INSTALL_PREFIX=$HOME/opencvlib /
-DCMAKE_BUILD_TYPE=RELEASE /
-DBUILD_SHARED_LIBS=ON /
-D USE_O3=ON /
-D ENABLE_CXX11=ON /
-DWITH_TBB=ON /
-DWITH_OPENMP=ON /
-DWITH_OPENGL=OFF /
-DWITH_OPENCL=ON /
-DOPENCV_GENERATE_PKGCONFIG=ON /
接下来:
查看当前版本
pkg-config --modversion opencv4
3.Linux 下 fatal error: opencv2/opencv.hpp: 没有那个文件或目录
命名已经安装了,为什么没有呢?
首先locate opencv看下情况:
相关头文件位于 /usr/local/include/opencv4
因此重新创建一个软链接 到 父目录:
cd /usr/local/include/
sudo ln -s opencv4/opencv2 opencv2
4.g++ 和cmake 编译使用opencv的程序
g++ out.cpp -o out `pkg-config --cflags opencv4 --libs opencv4`
CMakeLists.txt中可以这样写:
# cmake最低版本要求
cmake_minimum_required(VERSION 3.0)
# 项目名称
project(trilinear_fast)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -march=native -fopenmp -msse -msse2 -msse3 -msse4 -mavx -O2 -DNDEBUG")
set(CMAKE_BUILD_TYPE Release)
#set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
#set(OpenCV_INCLUDE_DIRS /usr/local/include/opencv4)
find_package(OpenCV REQUIRED)
include_directories(include ${OpenCV_INCLUDE_DIRS})
message(STATUS "project name = ${PROJECT_NAME}")
message(STATUS "OpenCV_LIBRARIES name = ${OpenCV_LIBRARIES}")
# 添加静态库
# add_library(testEigen STATIC testEigen/testEigen.cpp)
# 静态库testEigen的依赖的eigen头文件
# target_include_directories(testEigen PRIVATE "/usr/include/eigen3")
# 可执行文件的依赖头文件,源文件,添加可执行文件
include_directories(include ./)
file(GLOB_RECURSE SRC ./trilinear_fast.cpp ./lut3d.cpp)
add_executable(${PROJECT_NAME} ${SRC})
# 该可执行文件调用的静态库
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
其中opencv相关的主要是:
find_package(OpenCV REQUIRED)
include_directories(include ${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
5.opencv,eigen速度比较
https://nghiaho.com/?p=954
6.opencv常用类型符号
7.获取opencv matiax 的指针
方法1:
float* pmat= (float*)mat_opencv.data
方法2:
float* pmat = mat_opencv.ptr(0)