- ubuntu12
- 安装编译工具: sudo apt-get install build-essential 编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。
- 2 安装 cmake、git、pkg-config等辅助工具: sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev
- 3 安装关联库: sudo apt-get install python-dev python-opencv python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev END
二、编译OpenCV
- 1 从网上下载OpenCV-3.0.0.zip。 下载地址: http://opencv.org/downloads.html
- 2 如果使用虚拟机,最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译,一定不能在虚拟机在Windows系统里的共享文件夹下进行编译,否则会因为文件系统(Windows7的文件系统是NTFS,ubuntu-15.10的文件系统是)不同在编译过程中出错。鄙人在共享文件夹下进行编译,编译进行到%15时报错,我修复后又在编译进行到%21时报错,反正是各种错误,我是没有能力继续修复了......
- 3 最好将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
- 4 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 ..
- 5 make命令(-j表示用几个线程来编译,这样可以加快编译速度,不过这个与makefile的质量有关,有的工程用了-j会编译出错): make -j $(nproc) 上述命令后一般大约要耗时1个小时,甚至更多,视个人电脑硬件配置而定。 执行完以后不要忘了make install: sudo make install
- 6 如果编译过程出错后想要重新编译,把release目录下的CMakeCache.txt删除掉即可。 END
三、设置环境变量
- 1 添加库路径: sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
- 2 更新系统库: sudo ldconfig END
四、用cmake进行测试
- 1 DisplayImage.cpp中的源代码: #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv) { if ( argc != 2 ) { printf("[usage]: %s <Image_Path>\n", argv[0]); return -1; } Mat image; image = imread( argv[1], 1 ); if ( !image.data ) { printf("No image data!\n"); return -1; } namedWindow("Display Image", WINDOW_AUTOSIZE ); imshow("Display Image", image); waitKey(0); return 0; }
- 2 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} )
- 3 编译命令: cmake . make 运行命令: ./DisplayImage 01.jpg END
五、用make进行测试
- opencv_test.cpp中的源代码: #include "cv.h" #include "highgui.h" #include <iostream> 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 代码写得比较简单,所以显示效果是一张黑白图片。 步骤阅读