说明,我的操作系统是Ubantu16.04 安装的opencv版本是3.1.0,需要准备的文件有如下三个
分享链接:https://pan.baidu.com/s/1eSbDjpw 密码:edtn 当然也可以从官网下载...
第一步:安装源码前先安装好需要的第三方环境
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
第二步:准备好相关文件,下载下来的文件解压以后的相关文件夹如图所示
执行命令:
cd ~/opencv
mkdir build
cd build #这里上次写漏掉了,否则会报错×××does not appear to contain CMakeLists.txt.
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..
遇到问题:ippicv_linux_20151201.tgz国内被墙了,有时候下载不成功或者提出hash值不对
这个时候就需要使用ippicv_linux_20151201.tgz这个文件了,
解决办法:把需要的文件从百度云盘的源码资料中替换到对应的目录(<opencv目录>/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz)
即将我分享的文件替换掉这个包,因为这个地方可能没有下载成功,即使下载了也可能并不完整。
第三步:最后一步,编译安装,大概需要15~20分钟
执行命令:
make
sudo make instal
make(编译)的过程相当的长,下图就是我编译的过程
下面是安装过程
下图可以发现Opencv的相关库已经安装完毕
接下来要做的就是修改配置文件,保证在任何目录都可以使用opencv
cd ~/opencv/build/
sudo vim /etc/ld.so.conf #修改配置文件,如下图添加第二行的内容
sudo ldconfig #使得配置文件生效
第四步测试,下面是我的文件组织方式
下面是python版本测试代码 (执行完毕,按下s退出)
import cv2
img = cv2.imread('lena.jpg',cv2.IMREAD_UNCHANGED)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == ord('s'): # wait for 's' key to save and exit
cv2.imwrite('1.png',img)
cv2.destroyAllWindows()
else:
cv2.destroyAllWindows()
运行:python test_opencv.py
下面是C++的代码:
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc,char* argv[]){
const string window_name = "lena";
const string input_pic = "lena.jpg";
Mat test_pic = imread(input_pic);
if(test_pic.empty()){
cout<<"no input image"<<endl;
return 1;
}
namedWindow(window_name);
imshow(window_name,test_pic);
waitKey(0);
return 0;
}
编译:g++ -o test_opencv test_opencv.cpp -lopencv_core -lopencv_highgui -lopencv_imgcodecs
运行:./test_opencv