1. 先下载OpenCV的源码 http://opencv.org/downloads.html
2. 解压到任意目录
unzip opencv-2.4.9.zip
3.进入源码目录
cd opencv-2.4.9
4. 事先安装下列软件
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
5. 进入cmake
cd cmake
6. cmake编译生成Makefile,
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
安装所有的lib文件都会被安装到/usr/local目录
7. 编译,并安装
sudo make install
8. 测试
1)源代码:
新建test.cpp:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main (int argc, char **argv)
{
Mat image, image_gray;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR );
if (argc != 2 || !image.data) {
cout << "No image data\n";
return -1;
}
cvtColor(image, image_gray, CV_RGB2GRAY);
namedWindow("image", CV_WINDOW_AUTOSIZE);
namedWindow("image gray", CV_WINDOW_AUTOSIZE);
imshow("image", image);
imshow("image gray", image_gray);
waitKey(0);
return 0;
}
新建名为makefile的文件:
CC = g++
# 可执行文件
TARGET = test
# C文件
SRCS = test.cpp
# 目标文件
OBJS = $(SRCS:.cpp=.o)
# 库文件
DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
# 链接为可执行文件
$(TARGET):$(OBJS)
$(CC) -o $@ $^ $(DLIBS)
clean:
rm -rf $(TARGET) $(OBJS)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
$(CC) -o $@ -c $<
注意1:
12行、14行、17行前面为Tab,而非空格,否则会出现
“makefile:12: *** 遗漏分隔符 。 停止。”
这样的错误。
注意2:
由于示例中使用了opencv中的核心部分(opencv_core)、图像处理部分(opencv_imgproc)和GUI部分(opencv_highgui),所以依次增加opencv_core、opencv_imgproc、opencv_highgui动态链接库。
即由DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
语句实现。
2)make
cd 文档 # 进入程序所在目录
make
产生了两个文件:test文件和test.o文件 :
3) test
- 1
运行结果
上面程序test的作用就是将输入的图像转换为灰度图像,可以看到,程序实现了该功能,也就证明了opencv安装成功。