OpenCV: Installation in Linux
Ubuntu18.04安装 OpenCV4.3.0 - 知乎
Ubuntu下OpenCV环境配置_ZONGXP的博客-CSDN博客_opencv环境变量配置 ubuntu
编译器:
sudo apt update && sudo apt install -y cmake g++ wget unzip
官网需求:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
选好自己opencv想放的文件夹,笔者是放在~/Software/opencv之中
cd ~/Software/opencv
下载opencv本体和扩展模块:
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/master.zip
解压:
unzip opencv.zip
unzip opencv_contrib.zip
可以删除掉原始的压缩包了,随意。
然后创建一个build文件夹并且进入:
mkdir -p build && cd build
配置,建议最好先复制粘贴到记事本之中,根据自己情况配置好,然后再粘贴入终端运行
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D CUDA_ARCH_BIN='6'\
-D WITH_CUDA=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules \
-D BUILD_EXAMPLES=ON ../opencv-master
由于OpenCV 4.X支持使用CUDA对DNN模块进行加速计算,所以这里配置CUDA;在此之前需要自行配置好NVIDIA显卡的驱动与CUDA;
可修改以下语句进行配置,参数为电脑显卡的计算能力.
CUDA_ARCH_BIN='6'
计算能力对应表
CUDA GPUs | NVIDIA Developerhttps://developer.nvidia.com/cuda-gpus
nproc
查看cpu核心数
然后在build文件夹下运行,建议不要满核心运行,(笔者有16核心,此处用12核)
make -j12
最后
sudo make install
完成安装。
首先将OpenCV的库添加到路径,从而可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
然后保存退出,执行如下命令使得刚才的配置路径生效
sudo ldconfig
配置bash,执行如下命令
sudo gedit /etc/bash.bashrc
在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,然后执行如下命令使得配置生效
source /etc/bash.bashrc
笔者使用的ide(clion)测试,所以这里只放出CMakeFile 还有代码,至于怎么手动编译,也很简单,大家可以自行搜索
cmake_minimum_required(VERSION 3.20)
project(tutorial)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(tutorial main.cpp)
target_link_libraries(tutorial ${OpenCV_LIBS})
注意把filename换成自己电脑里一张图片的绝对路径。
#include
#include
#include
#include
int main(int args, char** argv){
std::string filename = "/home/samsu/factory/opencv/tutorial/chessboard_18x18.png";
if (args >= 2){
filename = argv[1];
std::cout << "Image file: " << filename << std::endl;
}
cv::Mat image = cv::imread(filename, cv::IMREAD_COLOR);
if (image.empty()){
std::cout << "please input an image file path." << std::endl;
return 0;
}
std::cout << "Image size is: " << image.size() << std::endl;
cv::namedWindow("image", cv::WINDOW_NORMAL);
cv::imshow("image", image);
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
编译运行代码会显示这张图片,并且在调试窗口显示这张图片的大小。说明环境调配成功。
pip install opencv-python
pip install opencv-contrib-python
谢谢