ARM + OpenCV 抓取摄像头图像 && 一点感想

本文记录了在ARM Linux环境下,使用OpenCV从USB摄像头抓取图像的过程。在解决VideoCapture无法打开设备/dev/video0的问题上,通过调整cmake配置最终成功实现图像捕获。作者强调了理解技术原理的重要性,认为这能帮助开发者避免和更快地解决实践中遇到的问题。
摘要由CSDN通过智能技术生成

使用前一篇中所述的配置方法,搭建出的基于arm-linux 的 OpenCV 对USB摄像头进行图像抓取,后面进一步会抓取视频。一开始抓取不了视频,VideoCapture 对象无法获取 /dev/video0 的设备。解决问题的思路贴下来,无耐心可跳过直接看最后:

VideoCapture打不开 isOpened 返回 false。
查看开发板的系统是否支持V4L2, multimedia -- > 内核配置
查看OpenCV编译的时候是否勾选了V4L2选项
初步定位到 OpenCV编译 cmake时选择 WITH_V4L 
OpenCV 2.4.9 + Ubuntu 12.04 : cmake-gui 中没有 WITH_V4L 或者 WITH_LIBV4L 这个选项
/usr/include/linux/ videodev.h videdev2.h 这个貌似没问题(待定)

OpenCV 2.4.3 在我的机器上试验,cmake-gui中依然没有 WITH_V4L选项,但是室友的机器上是有的,排除OpenCV安装包版本的问题,可能存在机器配置差异的问题。
安装libv4l-dev试试 —— 重新配置cmake-gui中的Cache,找不到V4L相关的值
安装 libv4l* —— 重新配置cmake-gui中的Cache,找不到V4L相关的值

opencv-2.4.9/cmake/OpenCVCmakeFindLibsVideo.cmake :
ocv_clear_vars(HAVE_LIBV4L HAVE_CAMV4L HAVE_CAMV4L2 HAVE_VIDEOIO)
if(WITH_V4L)
    if(WITH_LIBV4L)
        CHECK_MUDULE(libv4l1 HAVE_LIBV4L)
    endif()
    CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
  
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
MFC 是指Microsoft Foundation Class,是一种框架,用于快速开发Windows应用程序。而OpenCV是一种开源计算机视觉库,它提供了各种图像处理和计算机视觉算法的函数和工具。 要在MFC应用程序中链接摄像头,我们可以使用OpenCV库来实现。首先,我们需要在项目中包含OpenCV的头文件和库文件。 然后,我们可以使用OpenCV的函数来初始化和打开摄像头。例如,我们可以使用`cv::VideoCapture`类的构造函数来打开摄像头,如下所示: ```cpp cv::VideoCapture capture(0); // 打开默认摄像头 ``` 在打开摄像头后,我们可以使用`cv::VideoCapture`的`read`函数来读取摄像头的每一帧图像,如下所示: ```cpp cv::Mat frame; // 存储每一帧图像 while (true) { capture.read(frame); // 读取摄像头图像 cv::imshow("摄像头", frame); // 显示图像 if (cv::waitKey(30) >= 0) break; // 等待按键退出 } ``` 在上述代码中,我们使用`cv::imshow`函数将每一帧图像显示在一个窗口中,并使用`cv::waitKey`函数等待按键输入退出循环。 需要注意的是,这只是链接摄像头的基本示例。根据具体需求,我们可以进一步使用OpenCV库提供的其他函数进行图像处理、特征提取等操作,实现更多功能。 总结起来,要在MFC应用程序中链接摄像头,可以使用OpenCV库提供的函数和工具来实现初始化摄像头、读取每一帧图像和进行图像处理等操作。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值