版主: wanchong , wangyu , eepwwp , firedom

分享到:
共8条 1/1 1   

Edison上安装opencv+ 调用摄像头存储图片

    [您是本帖的第1650位阅读者]
lj1209
我是MM
普通会员

最后登陆时间:2015-09-29 15:56:36

直达楼层
1# 发表于 2015-04-24 22:44:58
1.在Intel社区中下载最新的OS镜像更新你的主板
输入reboot ota 回车进行系统升级
2.使用Opkg安装opencv包  
2.1  AlexT  介绍了一中方法 通过opkg连接他自己的 repo  .(上一篇Intel Edison 使用opkg 安装cmake 中讲了如何配置 edison (Intel Edison使用opkg安装应用 cmake)      

Edison 的opkg的宝库   (AlexT)
http://repo.opkg.net/edison/repo/  

2.2   在putty 中运行 "opkg install opencv-dev"
       这样在edison上opencv的环境基本算搭建完成。

3.uvc 视频核模块。在putty中运行" opkg install kernel-module-uvcvideo "  (进入putty 的步骤你需要看前面的快速开始指南)
值得注意的是早期的镜像为yocto1.6 里面是没有ucv 模块的,而最新发布的yocto1.6.1 里面是含有ucv 模块的,这里是不要装uvcvideo 模块 的,如果装了ucv 模块,系统会显示没有足够的磁盘空间了。。。intel 真是深坑啊!!! 
4.找到一个网络摄像头(webcam,摄像头是支持uvcvideo 模块的。(其中之一 UVC Linux 驱动程序和工具
5.将摄像头连接到edison 大的USB 口,靠近电源连接器,确保它附近的机械开关拨向USB口这端。(这是arduino 扩展板)
连接好摄像头之后,运行在putty中运行 "modprobe uvcvideo"  载入指定的uvc 模块和ucv 相依的关系,然后 “lsmod” 系统会显示 目前已经存在于内核中的模块,如果看到下面的显示说明ucv模块成功了。
 
6.写一个opencv 的程序 。不要用到了GUI,因为Edison上的版本没有GUI支持,把代码中所有跟窗口有关的都注释掉,反正在Edison没用,用了也报错(感谢秋纫大神)
下面是我自己写的一个简单程序 (我将它保存为lanfeng.cpp):



#include <stdio.h>
#include <iostream>
#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++;
cout<<"i see u "<<endl;

frame = cvQueryFrame(input_camera);

if(num ==10)
{
         cvSaveImage("lanfeng.png",frame);
}
}
cvReleaseCapture(&input_camera);
return 0;
}

使用winscp在 /home/root 中新建一个文件夹 opencv   (使用winscp的方法参考 社区中[url=http://www.arduino.cn/thread-9054-1-1.html]Edison升级_与编程环境的搭建 Eclipse 篇[/url],这篇文章)
将刚刚写好的lanfeng.cpp 复制到/home/root/opencv 中。

7. 在edison上直接编译。
   在putty 中 "cd /home/root/opencv " 进入程序所在文件夹 (working directory)
   编译文件”g++  lanfeng.cpp -o lanfeng -lopencv_core  -lopencv_highgui  -lopencv_video“ 如果不报错,说明编译成功
   这里我使用 编译选项只加了core和highgui 和video三个模块以后用到opencv的其它模块,就相应加上编译选项行了 
                    
    这里我使用”g++  lanfeng.cpp -o lanfeng `pkg-config  --cflags --libs opencv`“  编译失败了,存在一个问题。
                    

   编译成功后,运行程序  ( in the working directory ):
              ” ./lanfeng  “


                    

  将摄像头插入usb插口的时候可以 ”dmesg -c“ 看看内核是否发现你的设备。
  运行成功之后可以看到在 /home/root/opencv 中新增一张 ”lanfeng.png“  图片。

                  

到这里在edison上跑opencv的简单程序结束。

RE:by zpeng

wan2008
我是MM
普通会员

最后登陆时间:2015-01-14 10:44:55

2# 发表于 2015-04-24 23:05:43
真好

RE:by zpeng

woaiwei
我是MM
普通会员

最后登陆时间:2015-01-14 10:55:32

3# 发表于 2015-04-25 12:40:44
机械工程小白默默路过。

RE:by zpeng

zhengdongran
我是MM
普通会员

最后登陆时间:2015-01-14 11:03:27

4# 发表于 2015-04-27 12:34:23
很不错的经验贴。赞

RE:by zpeng

13930862386
我是MM
普通会员

最后登陆时间:2015-01-14 11:09:35

5# 发表于 2015-04-28 08:19:17
好好学习,板子做的好

RE:by zpeng

wuzebang
我是MM
普通会员

最后登陆时间:2015-01-14 10:40:03

6# 发表于 2015-04-29 11:11:01
机械工程小白默默路过。

RE:by zpeng

letree
我是MM
普通会员

最后登陆时间:2015-01-14 11:09:51

7# 发表于 2015-04-29 12:13:02
赞呐!

RE:by zpeng

jason612
我是MM
普通会员

最后登陆时间:2015-01-14 11:02:58

8# 发表于 2015-05-13 19:16:58
感谢分享
共8条 1/1 1   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]