安装opencv。
sudo apt-get install libcv-dev
或者使用源码安装
https://blog.csdn.net/xukai871105/article/details/40988101
#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;
}
使用下面简单命令:
$ gcc main.cpp -o test pkg-config --cflags --libs opencv
程序报错找不到fopen,原因在vs 里面自动添加头文件,所以没有报错,添加下面:
#iclude<stdio.h>
error: ‘>>’ should be ‘> >’ within a nested template argument
vector<vector> point_list;
加空格改为vector< vector > point_list;
或者使用下面脚本
【makefile】
INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目标文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可执行文件
TARGET = test
$(TARGET):$(OBJECTS)
g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
g++ -c $(SOURCES)
clean:
rm $(OBJECTS) $(TARGET)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
g++ -I $(INCLUDE) -o $@ -c $<
【简要说明】
通过pkg-config --cflags opencv 获得opencv相关头文件路径,通过pkg-config --libs opencv获得opencv扩展库
更多makefile知识请查看——【 Linux学习笔记——例说makefile 索引博文】
【编译并执行】
解决vim写的Makefile报错:Makefile: missing separator(did you mean TAB instead of 8 spaces?). Stop.
通常我们为了使vim作为更强大的IDE,会对vimrc文件加以配置(如将TAB键自动转换为4个空白键)。
但正是由于将tab键转换为n个空白键,使得用vim编写的Makefile中不存在tab键(即“\t”)了。恰恰Makefile中以tab键作为命令行的起始标记。所以现在找到了报错的原因,即tab键被替换为空白键了。
解决方法是:
在 /etc/vim/vimrc中加入下列配置行(也可在HOME目录下的vimrc中配置):
autocmd FileType make set noexpandtab
make