Linux调用opencv编程(一)

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

效果如下图所示




  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值