利用OpenCV检测特定颜色的物体

下载本文PDF 版本:链接:https://pan.baidu.com/s/1rXHySccGioWhNYLMmgi5BQ 
提取码:73ey 
 

1.    需求

利用摄像头实时检测一个红色的小球

2.    原料/前期准备

装有OpenCV的树莓派(OpenCV2.4.9)

树莓派摄像头模块(可以用罗技的USB摄像头代替)

3.    原理/实施步骤

a、最初的头文件和定义两个命名空间cvstd

#include <iostream>  
#include "opencv2/highgui/highgui.hpp"  
#include "opencv2/imgproc/imgproc.hpp"  

using namespace cv;  
using namespace std;  

 

 

b、为了实时检测小球的位置,我们首先需要打开树莓派的摄像头(PiCamera)

 

 

 

VideoCapture cap(0); //capture the video from web cam 

if ( !cap.isOpened() )  // if not success, exit program 
{ 
cout << "Cannot open the  cam" << endl; 
return -1; 
} 

 

 

如果使用的是USB摄像头,需要将VideoCapturecap(0)中的0改1。

 

如果opencv提供的cvCaptureFromCAM(0)函数无法找到Pi Cam但是换上普通usb摄像头之后就可以打开摄像头。运行起来就会发现找不到/dev/video0设备,但是树莓派官方自带的raspistill却能够用起来,这怎么回事呢?

树莓派中的camera module是放在/boot/目录下以固件的形式加载的,不是一个标准的v4l2的摄像头ko驱动,所以加载起来之后会找不到/dev/video0的设备节点,这是因为这个驱动是在底层的,v4l2这个驱动框架还没有加载,所以要在/etc/下面的modules-load.d/rpi-camera.conf里面添加一行bcm2835-v4l2,这句话意思是在系统启动之后会加载这个文件中模块名,这个模块会在树莓派系统的/lib/modules/xxx/xxx/xxx下面,添加之后重启系统,就会在/dev/下面发现video0设备节点了。这个文件名可能不是叫modules-load.d/rpi-camera.conf,也有可能直接就是/etc/modules,我用的是树莓派2,就是/etc/modules。
https://wiki.archlinux.org/index.php/Raspberry_Pi,这里讲了很多关于启动的问题,其中Raspberry Pi camera module这一章节就是说如何起camera。

修改/etc/modules,加上一行: bcm2835-v412

如下:

snd-bcm2835

bcm2835-v4l2

(v4l2l <

  • 19
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值