您的位置首页百科知识

Linux平台上安装OpenCV

Linux平台上安装OpenCV

的有关信息介绍如下:

Linux平台上安装OpenCV

OpenCV是一个基于开源发行的跨平台计算机视觉库,它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

安装编译工具:

sudo apt-get install build-essential

编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。

安装cmake、git、pkg-config等辅助工具:

sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev

安装关联库:

sudo apt-get install python-dev python-opencv python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

从网上下载OpenCV-3.0.0.zip。

下载地址:

http://opencv.org/downloads.html

如果使用虚拟机,最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译,一定不能在虚拟机在Windows系统里的共享文件夹下进行编译,否则会因为文件系统(Windows7的文件系统是NTFS,ubuntu-15.10的文件系统是)不同在编译过程中出错。鄙人在共享文件夹下进行编译,编译进行到%15时报错,我修复后又在编译进行到%21时报错,反正是各种错误,我是没有能力继续修复了......

最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译:

mv [OpenCV-3.0.0.zip存放路径] ~/opencv_3.0.0.zip

unzip opencv_3.0.0.zip

cd opencv-3.0.0

mkdir release

cd release

CMake是一个跨平台的编译工具,想深入学习cmake命令的可以百度一下。

编译命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..

make命令(-j表示用几个线程来编译,这样可以加快编译速度,不过这个与makefile的质量有关,有的工程用了-j会编译出错):

make -j $(nproc)

上述命令后一般大约要耗时1个小时,甚至更多,视个人电脑硬件配置而定。

执行完以后不要忘了make install:

sudo make install

如果编译过程出错后想要重新编译,把release目录下的CMakeCache.txt删除掉即可。

添加库路径:

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

更新系统库:

sudo ldconfig

DisplayImage.cpp中的源代码:

#include

#include

using namespace cv;

int main(int argc, char** argv)

{

if ( argc != 2 )

{

printf("[usage]: %s \n", argv);

return -1;

}

Mat image;

image = imread( argv, 1 );

if ( !image.data )

{

printf("No image data!\n");

return -1;

}

namedWindow("Display Image", WINDOW_AUTOSIZE );

imshow("Display Image", image);

waitKey(0);

return 0;

}

CMakeLists.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

运行命令:

./DisplayImage 01.jpg

opencv_test.cpp中的源代码:

#include "cv.h"

#include "highgui.h"

#include

using namespace std;

#define PICTURE "./01.jpg"

int main(void)

{

IplImage* img = cvLoadImage(PICTURE, 0);

cvNamedWindow( "test", 0 );

cvShowImage("test", img);

cvWaitKey(0);

cvReleaseImage( &img );

cvDestroyWindow( "test" );

return 0;

}

Makefile中的源代码:

CXX = g++

CFLAGS = -Wall

LDFLAGS = `pkg-config --cflags --libs opencv`

SRCS = $(wildcard *.cpp)

TARGETS = $(patsubst %.cpp, %, $(SRCS))

all:$(TARGETS)

$(TARGETS):$(SRCS)

$(CXX) -o $@ $< $(LDFLAGS) $(CFLAGS)

clean:

-rm -rf $(TARGETS) *~ .*swp

.PHONY: clean all

编译命令:

make

运行命令:

./opencv_test

代码写得比较简单,所以显示效果是一张黑白图片。