opencv
版本查看
pkg-config --modversion opencv
读取图片并显示的小程序
//#include "stdafx.h" 在Ubuntu中需要注释这个
#include <iostream>
#include <string>
#include <pthread.h>
#include <unistd.h>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
const char* imagename = "lena.jpg";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}
opencv通用makefile,使用时要删去下列中文
TARGET = ./demo
//生成的执行文件
SRCS := $(wildcard ./src/*.cpp ./*.cpp)
//源文件 cpp
OBJS := $(patsubst %cpp,%o,$(SRCS))
//目标文件 .o
CFLG = -g -Wall -I/usr/local/include -Iinc -I./ -std=c++11
//头文件.h文件
LDFG = -Wl,-rpath,/usr/local/lib -L./ -L/usr/local/lib -L./inc -lrt -lpthread -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_videoio `pkg-config opencv --cflags --libs `
//依赖库,其中`pkg-config opencv --cflags --libs ` 尤为重要。有时在CFLG中也要加入这句
//`pkg-config opencv --flags --libs(依赖文件) `一定要放在后面
CXX = g++
$(TARGET) : $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LDFG)
//链接:由目标文件生成执行文件
%.o:%.cpp
$(CXX) $(CFLG) -c $< -o $@
//编译:由源文件生成目标文件
.PHONY : clean
clean:
-rm ./*.o
-rm ./src/*.o
-rm ./bin/*
pkg-config
当你从源代码编译软件时,用来提供依赖库的信息的软件
终端输入pkg-config opencv --libs --cflags
,可以得到
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_viz -lopencv_core
如果发现不正确,可以修改/usr/local/lib/pkgconfig/opencv.pc文件,这个文件就是opencv的目录配置
参考博客
http://www.cnblogs.com/llxrl/p/4471831.html