【Galileo】图像处理平台opencv
0赞
发表于 2015/8/9 0:42:09
阅读(3584)
从galileo官方给出的系统yocto中可以进入到 /usr/lib和/usr/include 这两个目录中可以看到有存在opencv的库和头文件,因此解决了库的支持。
其次重要的是ubuntu中编译的支持,在安装了交叉编译工具的条件下,再安装opencv的安装,这样就能实现在电脑端的编译,板子上运行。
如果觉得安装很麻烦的话,楼主有试过把这两个库文件和头文件拷出来放进ubuntu的目录下,结果发现ubuntu也开不了机了,不过这应该可以再去试试,时间关系没有再去多弄。
第三种方式的方式出于偶然,直接舍弃ubuntu,板子的yocto系统本身就有g++,因此直接在板子上编译解决了以上一些繁琐的事情,另外由于使用了板子,就可以完全不使用ubuntu,因为文件的传输可以使用secureCRT更加方便。
至此解决了编译平台的问题。
接下来是如何调用opencv了,c++文件的编写和windows平台的编写时一样的,这里不在累述,以摄像头采集并存储图片为例。
#include <stdio.h> #include <iostream> #include <stdlib.h> #include "opencv2/opencv.hpp" #include "opencv2/core/core.hpp" #include "opencv2/video/background_segm.hpp" #include "opencv2/imgproc/imgproc_c.h" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/legacy/legacy.hpp" #include "opencv2/video/tracking.hpp" #include "opencv2/photo/photo.hpp" using namespace std; int main() { IplImage *frame = NULL; int num = 0; int key; CvCapture *input_camera = cvCaptureFromCAM(-1); frame = cvQueryFrame(input_camera); while(frame != NULL) { num++; frame = cvQueryFrame(input_camera); if(num >=10) { system("rm ./test.jpg"); cvSaveImage("test.jpg",frame); } } cvReleaseCapture(&input_camera); return 0; }
编译命令:
g++ main.cpp -o came -lopencv_stitching -lopencv_ts -lopencv_videostab -lopencv_core -lopencv_contrib -lopencv_features2d -lopencv_gpu -lopencv_ml -lopencv_nonfree -lopencv_flann -lopencv_calib3d -lopencv_video -lopencv_photo -lopencv_highgui -lopencv_imgproc -lopencv_legacy
编译后直接可以运行就能采集到图片了。
经验证,板子编译速度回比较慢,因此最好是在电脑上安装OPENCV通过电脑编译来提高速度