Linux调用opencv编程(一)
来源:互联网 发布:淘宝店铺规划方案 编辑:程序博客网 时间:2024/06/06 03:27
Linux下opencv编程
在linux环境下编译运行OpenCV程序的两种方法
第一种方法:Command Line(使用命令行参数的方法)
- xx.c:gcc `pkg-config --cflags --libs opencv` -o img_1 img_1.c
- xx.cpp:g++ `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;}
Opencv的C语言编译命令:
- #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;}
Opencv的C语言编译命令:
#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;}
执行:(1)g++ `pkg-config --cflags --libs opencv` -o test2 test2.cpp
(2)./test2 lena.jpg
效果如下图所示
0 0
- Linux调用opencv编程(一)
- Linux下Opencv入门编程一 (图像取反)
- 用java来调用OpenCV (一)
- opencv的GPU编程(一)
- OpenCV编程->双目标定(一)
- cuda与openCV结合编程(一)
- OpenCV学习笔记(一)(Linux + Qt)
- linux opencv调用手机摄像头
- OpenCV编程例子笔记一
- Linux 多线程编程(一)
- Linux网络编程(一)
- Linux多线程编程(一)
- Linux驱动编程(一)
- linux shell编程(一)
- Linux 多线程编程(一)
- Linux Shell 编程(一)
- Linux多线程编程(一)
- Linux Shell 编程(一)
- 第十六周--项目1-验证算法(8)基数排序
- Jsp&Servlet学习 --- get与post请求
- MySQL查询语句练习题(面试时可能会遇到哦!)
- 在CocoaPods构建自己的git版本管理库
- JVM类加载机制详解(一)JVM类加载过程
- Linux调用opencv编程(一)
- 深入剖析神经网络的运行机理及实现
- myeclipse乱码问题
- POJ 1019Number Sequence(组合数学)
- Hibernate基础:快速入门(3):SessionFactory和Session
- 利用OpenCV求取图像多轮廓质心,并在输出图像上显示质心坐标
- Long Long 的使用
- MaterialDesign的学习
- MAC查看端口占用情况