Opencv(源码) Ubuntu 安装
环境:
ubuntu 16.04 64bit
源码地址:
https://github.com/opencv/opencv/releases/tag/3.3.0
安装:
1.更新系统
sudo apt-get update
sudo apt-get upgrade
2 搭建C/C++编译环境:
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
3.解压源码
tar vxf opencv-3.3.0.tar.gz
4.进入源码新建文件夹
cd opencv-3.3.0/
mkdir release
cd release
cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DsCMAKE_INSTALL_PREFIX=/usr/local
5.编译安装
make -j8;sudo make install
6.设置环境变量
用vim打开/etc/ld.so.conf,注意要用sudo打开获得权限,不然无法修改,如:
sudo vim /etc/ld.so.conf,在文件中加上一行
/usr/loacal/lib,/user/loacal就是makefile中指定的安装路径
再运行sudo ldconfig,
修改bash.bashrc文件,sudo gedit /etc/bash.bashrc
在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
重新启动一个终端就可以了
碰到的问题:
在源目录中直接cmake . 报错
CMake Error at CMakeLists.txt:11 (message):
FATAL: In-source builds are not allowed.
You should create separate directory for build files.
-- Configuring incomplete, errors occurred!
意思是不能在源目录中安装 如果在源码目录下执行过cmake . 源码目录下会出现一个CMakeCheck.txt 的文件,删掉进入到新建的文件夹下按照第4步操作
安装步骤中的第4步新建文件夹就是这个原因
显示图片例子:
#include <opencv/highgui.h>
#include <opencv/cv.h>
int main( int argc, char** argv )
{
// 是一个高层调用接口,它通过文件名确定被加载文件的格式;
// 且该函数自动分配图像数据结构所需的内存。
// cvLoadImage可以读取大多数格式的图像文件,BMP、DIB、JPEG、JPE、PNG、BBM、PPM
// SR、RAS、TIFF
// 函数执行完后返回一个指针,此指针指向一块为描述该图像文件的数据结构而分配的内存块。
IplImage* img = cvLoadImage( argv[1] );
// cvNamedWindow由HighGUI库提供,用于在屏幕上创建一个窗口,将被显示的图像包含于该窗口中。
// 函数第一个参数指定了窗口的的窗口标题。
// 如果要使用HighGUI库所提供的其他函数与该窗口进行交互,我们将通过该参数值引用这个窗口中。
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE );
// 显示该图像
cvShowImage("Example1", img );
// 使程序暂停,等待用户触发一个按键操作,但如果该函数参数设为一个正数,则程序将暂停一段时间,
// 时间长为该整数值个毫秒单位
// 如果设置为0,那么将一直等待用户触发按键操作。
cvWaitKey(0);
// 内存释放功能
cvReleaseImage( &img );
// 关闭窗口
cvDestroyWindow("Example1");
}
保存文件:imagetest.cpp
编译 :
g++ imagetest.cpp `pkg-config --libs --cflags opencv`
运行:./a.out lena.png