懒人模式:
为了方便大家搭建环境,我把搭建好opencv2.4.11+python2.7的环境push到仓库了。若要使用,大家仅需要安装docker,然后拉取镜像即可。如何安装docker,使用镜像启动容器请参考docker安装,容器的基本操作,守护式进程及其操作,镜像操作
docker pull gxw514410699/opencv2
搭建教学:
首先,利用docker拉去ubuntu16.04的镜像
sudo docker pull ubuntu:16.04
开启交互式容器
sudo docker run -i -t 9499db781771 /bin/bash
进入容器并更新
安装vim
apt-get install vim
如果vim安装过慢,可以用echo命令(ubuntu20.04)
echo -e "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe\n\
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse\n\
" > /etc/apt/sources.list
利用vim换源
mv /etc/apt/sources.list /etc/apt/sources.list.back
vim /etc/apt/sources.list
把下面的指令粘贴到sources.list中
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
更新一下即可
apt-get update
安装opencv相关依赖环境
apt-get install build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev wget libcanberra-gtk-module gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
在home路径下,下载opencv2.4.11
cd home
wget https://github.com/opencv/opencv/archive/2.4.11.tar.gz
或者在宿主机上下载好,cp到docker上
sudo docker cp ./opencv-2.4.11.zip 1c55b98ab9ca:/home/ (1c55b98ab9ca为容器id)
创建release并在路径下cmake
mkdir release && cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.11 …
编译环境
sudo make -j4
安装编译环境
sudo make install
这样整个opencv2.4.11的环境就配置完成了。接下来需要设置环境变量。
vim /etc/ld.so.conf.d/opencv.conf
添加指令
/usr/local/opencv2.4.11/lib
ldconfig
vim ~/.bashrc
添加指令
export PKG_CONFIG_PATH="/usr/local/opencv2.4.11/lib/pkgconfig"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/opencv2.4.11/lib"
source ~/.bashrc
pkg-config --modversion opencv (查看opencv版本)
pkg-config --cflags --libs opencv (查看opencv安装库和包含路径)
如果遇到python import cv2,出现 no module cv2的问题:
解决:
把opencv-2.4.11/release/lib/cv2.so复制到
/usr/local/lib/python2.7/dist-packages
接下来我们可以打包自己的镜像
1.将容器制作成镜像
docker commit -m '镜像描述' -a '制作者' 容器名 镜像名
2.将制作好的镜像打成 tar 包
docker save -o tar包的名字 镜像名
3.别人接收到 tar 包之后,load tar 包
docker load < tar 包所在路径
4.run 镜像进入容器
docker run -i -t 镜像 /bin/bash