Linux调用opencv编程(一)

来源:互联网 发布:淘宝店铺规划方案 编辑:程序博客网 时间:2024/06/06 03:27

Linuxopencv编程

linux环境下编译运行OpenCV程序的两种方法

第一种方法:Command Line(使用命令行参数的方法)

  • xx.cgcc  `pkg-config --cflags --libs opencv`  -o  img_1  img_1.c
  •  xx.cppg++  `pkg-config --cflags --libs opencv`  -o  imgshow  imgshow.cpp

(其中`不是英文状态下的单引号,而是键盘上“~”一个键上的“` ”符号)

第二种方法:使用OpenCV推荐的CMake工具

step1:新建一个目录用于存放我们的代码和程序中要处理的相关图片。

step2:添加cmake工具编译时所需的文件CMakeLists.txt

Step3:让后我们输入命令"cmake ."对当前的工程进行编译。

 

1、示例1

img_1.c的代码如下:

#include <highgui.h> int main(int argc,char ** argv){ IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_COLOR);    cvNamedWindow("Image_show",CV_WINDOW_AUTOSIZE);    cvShowImage("Image_show",img);    cvWaitKey(0);    cvReleaseImage(&img);    cvDestroyWindow("Image_show");    return 0;}

OpencvC语言编译命令:

  • #gcc  `pkg-config --cflags --libs opencv`  -o  img_1  img_1.c

程序执行:

# ./img_1   lena.jpg 


示例2

imgshow.cpp的代码如下:

#include <opencv2/highgui/highgui.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char**argv){

Mat src=imread("lena.jpg",CV_LOAD_IMAGE_COLOR);namedWindow("Hello");imshow("Hello",src);cout<<"Press 'q' to quit ..."<<endl;while(1){if(char(waitKey(1))=='q')break;}destroyAllWindows();return 0;}

OpencvC语言编译命令:

#g++  `pkg-config --cflags --libs opencv`  -o  imgshow  imgshow.cpp

程序执行:

# ./imgshow  


示例3

彩色图像灰度化

test_1.cpp代码如下:

#include<opencv2/highgui/highgui.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc,char **argv){Mat src=imread(argv[1]);if(!src.data){cout<<"image to load failure!"<<endl;return -1;}namedWindow("src");imshow("src",src);Mat dst;cvtColor(src,dst,CV_BGR2GRAY);namedWindow("gray");imshow("gray",dst);cout<<"Press 'q' to quit ..."<<endl;while(1){if(char(waitKey(1))=='q')break;}destroyAllWindows();return 0;}

执行:

#g++  `pkg-config --cflags --libs opencv` -o test_1 test_1.cpp

#./test_1  lena.jpg


示例4

彩色图像二值化

Test2.cpp的代码如下:

#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(int argc,char **argv){Mat src=imread(argv[1]);if(!src.data){cout<<"image to load failure!"<<endl;return -1;}namedWindow("src");imshow("src",src);Mat dst;cvtColor(src,dst,CV_BGR2GRAY);namedWindow("gray");imshow("gray",dst);Mat bin;threshold(dst,bin,110,250,THRESH_BINARY);namedWindow("bin");imshow("bin",bin);cout<<"Press 'q' to quit ..."<<endl;while(1){if(char(waitKey(1))=='q')break;}destroyAllWindows();return 0;}

执行:(1g++ `pkg-config --cflags --libs opencv` -o test2 test2.cpp

(2)./test2 lena.jpg

效果如下图所示




0 0
原创粉丝点击