参考文献:
https://blog.csdn.net/qq_33431368/article/details/84754421
https://www.jianshu.com/p/f646448da265
https://blog.csdn.net/u013066730/article/details/79411767
https://blog.csdn.net/u013066730/article/details/79411730
https://docs.opencv.org/3.4.0/d7/d9f/tutorial_linux_install.html
安装包下载
去官网下载opencv,在本教程中选用的时opencv3.4.0,其他版本的配置方法类似:
下载地址,选择sources版本:http://opencv.org/releases.html
解压opencv-3.4.0.zip包:
unzip opencv-3.4.0.zip
进入文件夹:
cd opencv-3.4.0
依赖库安装
安装cmake:
sudo apt-get install cmake
安装需要用到的依赖库:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff4-dev libswscale-dev libjasper-dev
程序编译
创建文件夹:
sudo mkdir my_build_dir
进入文件夹:
cd my_build_dir
执行cmake命令:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
或者直接:sudo cmake ..
执行make命令:
sudo make
执行install命令:
sudo make install
配置编译环境
将OpenCV的库添加到路径:
sudo gedit /etc/ld.so.conf.d/opencv.conf
在空白的文件上添加:
/usr/local/lib
使配置文件生效:
sudo ldconfig
值的一提的是,这个“配置编译环境”不确定是否必要,但建议做一下!
配置bash
配置bash执行:
sudo gedit /etc/bash.bashrc
在末尾追加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存,执行如下命令使得配置生效:
source /etc/bash.bashrc
更新一下:
sudo updatedb
值的一提的是,这个“配置Bash”不确定是否必要,但建议做一下!
程序测试
创建并进入测试文件夹:
mkdir ~/opencv-demo
cd ~/opencv-demo/
编写cpp文件和Cmakelist.txt文件:
gedit DisplayImage.cpp
gedit CMakeLists.txt
cpp文件内容如下:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
{
Mat image;
image = imread(argv[1], 1);
if (!image.data)
{
printf("No image data\n");
return -1;
}
namedWindow("display", WINDOW_AUTOSIZE);
imshow("display", image);
waitKey(0);
return 0;
}
Cmakelist.txt文件内容如下:
cmake_minimum_required(VERSION 2.8)
project(DisplayImage)
find_package(OpenCV REQUIRED)
add_executable(DisplayImage DisplayImage.cpp)
target_link_libraries(DisplayImage ${OpenCV_LIBS})
然后cmake、make一下:
sudo cmake .
sudo make
开始测试:
sudo ./DisplayImage test.jpeg
然后打开了这张照片:
程序移植
经测试,需要将已经编译完成的以下文件夹拷贝到对应目录即可:
usr/local/include/opencv
usr/local/include/opencv2
usr/local/lib/libopecv.so(大约51个)
usr/local/share/OpenCV
这里给出几个解压命令:
unzip archive_name.zip zip解压到当前目录
tar -xvf archive_name.tar tar解压到当前目录
tar -zxvf archive_name.tar.gz tar.gz解压到当前目录
还需注意,直接粘贴到usr/local/include可能不被允许,可以现在home/zhangru下解压完毕再进行拷贝。
打开usr/local/include文件夹权限的命令行代码为:
sudo nautilus
值得一提的是,如果你使用上述“测试”中的代码,请别忘记改写cmakelist.txt和DisplayImage.cpp,
此外还需要安装cmake:
sudo apt-get install cmake
当然,如果你这样修改cmakelist.txt文件,则可以将需要的文件夹直接放在当前工作目录下:
cmake_minimum_required(VERSION 2.8)
project(DisplayImage)
find_package(OpenCV REQUIRED PATHS ./share/OpenCV)
include_directories(
.
./include
./lib
./share
)
add_executable(DisplayImage DisplayImage.cpp)
target_link_libraries(DisplayImage ${OpenCV_LIBS})