opencv的第一份代码,及其makefile通用格式

来源:互联网 发布:国外通用航空软件 编辑:程序博客网 时间:2024/06/05 20:21

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)//源文件 cppOBJS := $(patsubst %cpp,%o,$(SRCS))//目标文件 .oCFLG = -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 : cleanclean:    -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

http://blog.csdn.net/CV_YOU/article/details/70261276

http://blog.sina.com.cn/s/blog_dae08e100102v4e3.html

原创粉丝点击