精华内容
下载资源
问答
  • 由于opencv自带的VideoCapture函数直接从usb摄像头获取视频数据,所以用这个来作为实时的图像来源用于实体检测识别是很方便的。1. 安装opencv安装的步骤可以按照之前这个文章操作。如果在测试的时候:cam = cv2....

    由于opencv自带的VideoCapture函数直接从usb摄像头获取视频数据,所以用这个来作为实时的图像来源用于实体检测识别是很方便的。

    1. 安装opencv

    安装的步骤可以按照之前这个文章操作。如果在测试的时候:

    cam = cv2.VideoCapture(0)

    print cam.isOpend()

    返回了False,很有可能是在安装的时候cmake的配置没有设置后,可以make uninstall之后重新cmake。

    2. 安装usb摄像头驱动(这个一般都不需要)

    如果系统没有预装usb摄像头的驱动,那么根据所用的摄像头安装相应的驱动即可。安装完之后可以用lsusb或者v4l2-ctl --list-device命令查看当前链接的usb设备来确认。这里我们使用的摄像头是罗技c930e。

    3. 设置摄像头参数

    设置可以在脚本中用opencv或者在命令行用v4l2-ctl命令设置:

    1). opencv

    """

    0. CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.

    1. CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.

    3. CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file

    4. CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.

    5. CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.

    6. CV_CAP_PROP_FPS Frame rate.

    7. CV_CAP_PROP_FOURCC 4-character code of codec.

    8. CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.

    9. CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .

    10. CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.

    11. CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).

    12. CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).

    13. CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).

    14. CV_CAP_PROP_HUE Hue of the image (only for cameras).

    15. CV_CAP_PROP_GAIN Gain of the image (only for cameras).

    16. CV_CAP_PROP_EXPOSURE Exposure (only for cameras).

    17. CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.

    18. CV_CAP_PROP_WHITE_BALANCE Currently unsupported

    19. CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)

    """

    # set camera properties

    cam.set(4, 1280) # img width,第一个数字对应上述属性

    cam.set(5, 640) # img height

    cam.set(6, 24) # video FPS

    2). v4l2-ctl

    首先用v4l2-ctl --list-device确定usb摄像头的device编号(一般为/dev/video0),然后查看该设备可以设置的参数:

    v4l2-ctl -d /dev/video0 --list-ctrls

    罗技c930e摄像头的参数如下:

    brightness (int) : min=0 max=255 step=1 default=-8193 value=128

    contrast (int) : min=0 max=255 step=1 default=57343 value=128

    saturation (int) : min=0 max=255 step=1 default=57343 value=128

    white_balance_temperature_auto (bool) : default=1 value=1

    gain (int) : min=0 max=255 step=1 default=57343 value=0

    power_line_frequency (menu) : min=0 max=2 default=2 value=2

    white_balance_temperature (int) : min=2000 max=6500 step=1 default=57343 value=4000 flags=inactive

    sharpness (int) : min=0 max=255 step=1 default=57343 value=128

    backlight_compensation (int) : min=0 max=1 step=1 default=57343 value=0

    exposure_auto (menu) : min=0 max=3 default=0 value=3

    exposure_absolute (int) : min=3 max=2047 step=1 default=250 value=250 flags=inactive

    exposure_auto_priority (bool) : default=0 value=1

    pan_absolute (int) : min=-36000 max=36000 step=3600 default=0 value=0

    tilt_absolute (int) : min=-36000 max=36000 step=3600 default=0 value=0

    focus_absolute (int) : min=0 max=250 step=5 default=8189 value=0 flags=inactive

    focus_auto (bool) : default=1 value=1

    zoom_absolute (int) : min=100 max=500 step=1 default=57343 value=100

    最后可以可以设置参数了:

    v4l2-ctl --set-ctrl=zoom_absolute=200 #放大两倍

    4. opencv获取图片

    这个就很简单了,这里就说明下用waitKey参数来用键盘输入控制视频流:

    import cv2

    cam = cv2.VideoCapture(0)

    img_counter = 0

    while cam.isOpened():

    ret, frame = cam.read()

    cv2.imshow("test", frame)

    if not ret:

    break

    key = cv2.waitKey(1) & 0xFF

    if key == 27:

    # press ESC to escape (ESC ASCII value: 27)

    print("Escape hit, closing...")

    break

    elif key == 32:

    # press Space to capture image (Space ASCII value: 32)

    img_name = "opencv_frame_{}.png".format(img_counter)

    cv2.imwrite(img_name, frame)

    print("{} written!".format(img_name))

    img_counter += 1

    else:

    pass

    cam.release()

    cv2.destroyAllWindows()

    PS:waitKey(1) & 0xFF获取当前按的键的ascii码,如果要用其他键来控制,用相应键的ascii码替换即可。(ascii码查询)。

    参考

    展开全文
  • 在运行opencv3.4的摄像头标定程序时, 出现USB摄像头打开成功,就是读不到图像,使得图像矩阵为空,出现对图像矩阵调用resize()方法时出现故障,通过判断图像矩阵是否为空解决此错误后,程序退出时提示select time...

    ____在运行opencv3.4的摄像头标定程序时, 出现USB摄像头打开成功,就是读不到图像,使得图像矩阵为空,出现对图像矩阵调用resize()方法时出现故障,通过判断图像矩阵是否为空解决此错误后,程序退出时提示select timeout故障提示。
    ____按博文https://blog.csdn.net/komonder/article/details/79992529中方法尝试,如下图修改虚拟机设置为USB兼容USB3.0后,将摄像头插到USB3.0口,重新运行问题解决,对于USB2.0的摄像头出现此类问题,很是疑惑,暂时能够用了也就暂时搁浅一下,希望放到嵌入式板子上的USB2.0不要出现此类问题就好。

    在这里插入图片描述

    展开全文
  • 由于opencv自带的VideoCapture函数直接从usb摄像头获取视频数据,所以用这个来作为实时的图像来源用于实体检测识别是很方便的。 安装opencv 安装的步骤可以按照之前这个文章操作。如果在测试的时候: cam = cv2....

    本文转自博客园-Arkenstone
    由于opencv自带的VideoCapture函数直接从usb摄像头获取视频数据,所以用这个来作为实时的图像来源用于实体检测识别是很方便的。

    1. 安装opencv
      安装的步骤可以按照之前这个文章操作。如果在测试的时候:
    cam = cv2.VideoCapture(0)
    print cam.isOpend()
    

    返回了False,很有可能是在安装的时候cmake的配置没有设置后,可以make uninstall之后重新cmake。

    1. 安装usb摄像头驱动(这个一般都不需要)
      如果系统没有预装usb摄像头的驱动,那么根据所用的摄像头安装相应的驱动即可。安装完之后可以用lsusb或者v4l2-ctl --list-device`命令查看当前链接的usb设备来确认。这里我们使用的摄像头是罗技c930e。

    2. 设置摄像头参数
      设置可以在脚本中用opencv或者在命令行用v4l2-ctl命令设置:
      1). opencv

    0. CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.
    1. CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.
    3. CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file
    4. CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
    5. CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.
    6. CV_CAP_PROP_FPS Frame rate.
    7. CV_CAP_PROP_FOURCC 4-character code of codec.
    8. CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.
    9. CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
    10. CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
    11. CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
    12. CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
    13. CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
    14. CV_CAP_PROP_HUE Hue of the image (only for cameras).
    15. CV_CAP_PROP_GAIN Gain of the image (only for cameras).
    16. CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
    17. CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.
    18. CV_CAP_PROP_WHITE_BALANCE Currently unsupported
    19. CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend currently)
    

    set camera properties

    cam.set(4, 1280)     # img width,第一个数字对应上述属性
    cam.set(5, 640)     # img height
    cam.set(6, 24)      # video FPS
    

    2). v4l2-ctl
    首先用v4l2-ctl --list-device确定usb摄像头的device编号(一般为/dev/video0),然后查看该设备可以设置的参数:

    v4l2-ctl -d /dev/video0 --list-ctrls
    

    罗技c930e摄像头的参数如下:

    
     brightness (int)    : min=0 max=255 step=1 default=-8193 value=128
                           contrast (int)    : min=0 max=255 step=1 default=57343 value=128
                         saturation (int)    : min=0 max=255 step=1 default=57343 value=128
     white_balance_temperature_auto (bool)   : default=1 value=1
                               gain (int)    : min=0 max=255 step=1 default=57343 value=0
               power_line_frequency (menu)   : min=0 max=2 default=2 value=2
          white_balance_temperature (int)    : min=2000 max=6500 step=1 default=57343 value=4000 flags=inactive
                          sharpness (int)    : min=0 max=255 step=1 default=57343 value=128
             backlight_compensation (int)    : min=0 max=1 step=1 default=57343 value=0
                      exposure_auto (menu)   : min=0 max=3 default=0 value=3
                  exposure_absolute (int)    : min=3 max=2047 step=1 default=250 value=250 flags=inactive
             exposure_auto_priority (bool)   : default=0 value=1
                       pan_absolute (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                      tilt_absolute (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                     focus_absolute (int)    : min=0 max=250 step=5 default=8189 value=0 flags=inactive
                         focus_auto (bool)   : default=1 value=1
                      zoom_absolute (int)    : min=100 max=500 step=1 default=57343 value=100
    

    最后可以可以设置参数了:

    v4l2-ctl --set-ctrl=zoom_absolute=200 #放大两倍
    4. opencv获取图片
    这个就很简单了,这里就说明下用waitKey参数来用键盘输入控制视频流:

    import cv2
    
    cam = cv2.VideoCapture(0)
    img_counter = 0
    while cam.isOpened():
        ret, frame = cam.read()
        cv2.imshow("test", frame)
        if not ret:
            break
        key = cv2.waitKey(1) & 0xFF
    
        if key == 27: 
            # press ESC to escape (ESC ASCII value: 27)
            print("Escape hit, closing...")
            break
        elif key == 32:
            # press Space to capture image (Space ASCII value: 32)
            img_name = "opencv_frame_{}.png".format(img_counter)
            cv2.imwrite(img_name, frame)
            print("{} written!".format(img_name))
            img_counter += 1
        else:
            pass
    cam.release()
    cv2.destroyAllWindows()
    

    PS:waitKey(1) & 0xFF获取当前按的键的ascii码,如果要用其他键来控制,用相应键的ascii码替换即可。(ascii码查询)。

    参考
    http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture
    http://stackoverflow.com/questions/11420748/setting-camera-parameters-in-opencv-python
    http://kurokesu.com/main/2016/01/16/manual-usb-camera-settings-in-linux/
    http://stackoverflow.com/questions/34588464/python-how-to-capture-image-from-webcam-on-click-using-opencv
    http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000520.html

    展开全文
  • VMware 15pro虚拟机ubuntu16.04 opencv4.1获取usb摄像头图像失败,显示select timeout错误 先说下我的设备: win10 1903,虚拟机时VM15.5pro,这里有个大坑,就是打开虚拟机老是黑屏,要不就是虚拟机繁忙,大部分...

    VMware 15pro虚拟机 ubuntu16.04 opencv4.1 获取usb摄像头图像失败,显示select timeout错误

    先说下我的设备:

    win10 1903,虚拟机时VM15.5pro,这里有个大坑,就是打开虚拟机老是黑屏,要不就是虚拟机繁忙,大部分网友说的都不行,后来才查到是因为win1903的沙盒功能和VM冲突,TMD,然后我就把设置里Windows更新了下补丁和更新了下VM,就好了,千万别卸载虚拟机或者删了,好不容易建的环境唉。。。。

    opencv4.1.1 for python版

    问题:针对虚拟机opencv打开和人家demo示例一摸一样代码,怎么老师报错呢,说select timeout。

    原因:是因为USB2.0的摄像头的供电和信号都在一起,所以容易供电不足。

    解决方法:将USB摄像头插到USB3.0的电脑口,然后再虚拟机的设置中将USB的兼容性设置成3.0,然后运行程序没问题啦,出现了图像了。。。哈哈哈哈,国庆节我还来公司玩这个问题,终于解决了,哈哈哈

     

    展开全文
  • 树莓派通过opencv调用usb摄像头出现select timeout解决方法 现象 树莓派4b,使用opencv调用usb摄像头报错。执行ret, frame = cap.read()时终端输出select timeout或者VIDIOC_DQBUF: Resource temporarily ...
  • 由于opencv自带的VideoCapture函数直接从usb摄像头获取视频数据,所以用这个来作为实时的图像来源用于实体检测识别是很方便的。 1. 安装opencv 安装的步骤可以按照之前这个文章操作。如果在测试的时候: cam = cv2....
  • 一开始是用IplImage类型去获取摄像头图像,不管内置摄像头还是USB摄像头,一直读出黑屏。 百度说用DirectShow,到底也没弄出个所以然。 最后看到有人说使用Mat类,结果能从USB摄像头读出彩色图像,但是笔记本内置...
  • 之前做的一些利用摄像头的工作,结果python3下怎么弄都cv2.VideoCapture 无法获取usb摄像头图像,但在python2下能用。解决方案:1.从opencv的github上git clone最新的源码,自行编译安装:打开cmake,选好路径,...
  • 现在做摄像头捕获视频实验,使用ViedeCapture,出现如下错误: [ WARN:0] global /home/xgl/opencv-4.3.0/modules/videoio/src/cap_v4l.cpp (1004) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout. 经网上...
  • 分别使用OpenCV2和MATLAB获取USB摄像头

    千次阅读 2016-08-17 15:21:44
    介绍了分别使用opencv2及matlab获取 USB webcam 进行视频显示,抓拍图像及保存的程序,一些微小的工作,希望能帮助大家!
  • 原则上获取双目只是单目的程序叠加,但需要注意的是,有时获取外部usb摄像头,需要将cap.set(CV_CAP_PROP_FPS, 30.0)注释掉#include #include using namespace std; using namespace cv; int main() { VideoCapture ...
  • ARM + OpenCV 抓取摄像头图像 && 一点感想

    千次阅读 热门讨论 2015-01-26 20:47:03
    使用前一篇中所述的配置方法,搭建出的基于arm-linux 的 OpenCVUSB摄像头进行图像抓取,后面进一步会抓取视频。一开始抓取不了视频,VideoCapture 对象无法获取 /dev/video0 的设备。解决问题的思路贴下来,无...
  • 该程序是用于获取、保存选定时刻的摄像头图像的程序,可用于采集特征匹配算法所需...(1)插入USB摄像头,复制该程序进main.cpp,增加OpenCV动态链接。 (2)修改代码注释处想获得的图像的分辨率(水平、垂直像素数,
  • //寻找膛口质心时获取像素较少的图片 cvSetCaptureProperty(capture1 , CV_CAP_PROP_FRAME_HEIGHT , 240); char fileName[100]; char key; int count = 0; waitKey(3000); while(1) { frame = ...
  • 问题描述:在使用nanopi(RK3399)时,采用opencv的VideoCapture进行USB摄像头的视频捕捉时,刚开始都可以获取1920×1080分辨率的视频图像,但使用一段时间后,有一天突然获取不了,在调用read函数时均返回False。...
  • 最后了解了一下,常用的USB摄像头和笔记本本身自带的摄像头不是一个类型的,imshow()获取不了这种类型的摄像头。   还有网上各种解决方法,基本都不正确,出现这种选择某种摄像头的方法,在真正使用中不实用而....
  • 最简单的方法就是利用opencv的videcapture,直接获取每一帧的图像,但是由于使用的usb摄像头采集的视频格式是MJPEG,需要解码才能用,而opencv的MJPEG解码实在是有点慢,所以只能舍弃。 v4l2 + libjpeg-turbo 其实...
  • 前一个blog中跟大家分享了如何快速的编写程序从连接在Dragonboard 410c开发板上的USB摄像头中读取图像信息,给大家简单介绍了一下如何搭建Dragonabord 410c开发板的摄像头开发环境,包括相关源的更新,库的安装,...
  • imx8mini openCV摄像头报错: ...有python 和openCV 获取摄像头图像都是一种报错,但是用USB摄像头根本没有问题,找了很久,终于解决问题。问题在于驱动中没实现。 摄像头为mipi 摄像头 设备为/dev/video0 ;有p...
  • 用各种摄像头获取图像

    千次阅读 2017-11-02 20:36:18
    可能有很多人想在ROS下学习视觉,先用摄像头获取图像,再用opencv做相应算法处理,可是ROS下图像的采集可不像平常的read一下那么简单,需要借助外部package的使用。而摄像头即可以用笔记本自带的摄像头,也可以用...
  •  这是使用两个usb摄像头做的测试效果。  使用了两个库,一个是cv(图像处理和视觉算法),一个是HighGUI(图像和视频的输入输出)  cvnamewindow()函数用于在屏幕上创建一个窗口,并将视频显示在窗口中。  ...
  • 该方法首先根据双目标定理论获取左右摄像机的内外参数和畸变系数,再进行双目图像校正与匹配,然后根据左右图像中目标点的不同坐标得出视差,最后利用三维重建方程组得出障碍物的距离。实验结果表明:该方法对汽车...
  • ROS 教程之 vision : 用各种摄像头获取图像

    万次阅读 热门讨论 2014-12-27 18:46:50
    可能有很多人想在ROS下学习视觉,先用摄像头获取图像,再用opencv做相应算法处理,可是ROS下图像的采集可不像平常的read一下那么简单,需要借助外部package的使用。而摄像头即可以用笔记本自带的摄像头,也可以用...
  • 上篇文章我们介绍了怎么用OpenCV打开图像并将图像数据发送出去, 这解决了一部分问题。但实际工程应用中,我们经常需要实时获取图像数据,因此仅仅读取本地的图片是不够的。本篇我们将研究如何获取USB/rtsp等格式...
  • Qt打开USB摄像头,做圆检测

    千次阅读 2017-10-12 14:43:44
    Qt界面中添加一个Label,打开USB摄像头,并做相应的图像处理。 一直都是使用C++配置opencv做视觉处理,最近要做界面,决定学习一种新的界面编辑软件,C#很好用,C#配置Emgu做视觉分析,一直都不如C++方便,个人比较...
  • 刚安装好OPENCV,做了简单的视频,图像处理示例,还不错,刚想开始尝试用本地摄像头,结果摄像头是打开了,但获取数据失败,BUFFER 中没有数据,一直打印 vidioc_qbuf: invalid argument。 百思不得其JIE。 后来使用...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

opencv获取usb摄像头图像