精华内容
下载资源
问答
  • 目前连接两个usb摄像头,具体程序如下,使用的是进程的思想打开的摄像头,若有其他方法,欢迎留言 #!/usr/bin/env python # -*- coding: utf-8 -*- import cv2 import numpy as np import multiprocessing def...

    目前连接两个usb摄像头,具体程序如下,使用的是多进程的思想打开的摄像头,若有其他方法,欢迎留言

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import cv2
    import numpy as np
    import multiprocessing
    
    def openCamera(port):
        cap = cv2.VideoCapture(port)
        cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('M', 'J', 'P', 'G'))  # 视频流格式
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
        width = cap.get(3)
        height = cap.get(4)
        print(width, height, cap.get(5))
    
        while True:
            ret, frame = cap.read()
    
            if not ret:
                print("get camera " + str(port) + " frame is empty")
                break
    
            title = "image" + str(port)
            cv2.imshow(title, frame)
    
            key = cv2.waitKey(10) & 0xff
            if key == ord('q'):
                break
    
        cap.release()
        cv2.destroyAllWindows()
    
    
    if __name__ == '__main__':
        #多进程 树莓派上偶数对应一个摄像头
        cam1 = multiprocessing.Process(target=openCamera, args=(0,))
        cam1.start()
    
        cam2 = multiprocessing.Process(target=openCamera, args=(2,))
        cam2.start()
        

    打开单个usb摄像头程序如下

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import cv2
    
    if __name__ == '__main__':
        #SunplusIT Inc 摄像头
        cap = cv2.VideoCapture(0)
        cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('M', 'J', 'P', 'G'))  # 视频流格式
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
        width = cap.get(3)
        height = cap.get(4)
        print(width, height, cap.get(5))
    
        while True:
            ret, frame = cap.read()
    
            if not ret:
                print("get camera frame is empty")
                break
    
            str = "image"
            cv2.imshow(str, frame)
    
            key = cv2.waitKey(10) & 0xff
            if key == ord('q'):
                break
    
        cap.release()
        cv2.destroyAllWindows()
    

     

    展开全文
  • opencv 打开多个摄像头

    2013-11-30 16:26:22
    opencv打开多个摄像头的示例,使用的是opencv2.4.6版本,vc2008
  • 主要为大家详细介绍了Python通过cv2读取多个USB摄像头,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 利用Opencv和DirectShow打开多USB摄像头,可设置分辨率及帧率。工程已搭好所有的环境,不需再配置Opencv和DirectShow。下载可直接使用。平台为VS2013.
  • 在树莓派上使用多个USB摄像头时,如何确定各个摄像头所对应的id? 比如,当有两个摄像头时,我尝试一个为cv2.VideoCapture(0),一个为cv2.VideoCapture(1),通过看捕获的图像,可以确定各摄像头的id,但这个顺序不是...

    问题描述:

    在树莓派上使用多个USB摄像头时,如何确定各个摄像头所对应的id?
    比如,当有两个摄像头时,我尝试一个为cv2.VideoCapture(0),一个为cv2.VideoCapture(1),通过看捕获的图像,可以确定各摄像头的id,但这个顺序不是固定的,树莓派在通电的时候,哪一个摄像头先通电的,哪一个就是0,下一个就是1,2,3,4,5…
    但这样毕竟很被动,在我们的代码上就很麻烦了,没办法确定摄像头是那一个!


    现在我们就来解决这个问题(全网首份保姆级教程):

    1.查看USB摄像头的ID

    在终端上输入lsusb

    lsusb
    

    在这里插入图片描述
    我这里使用了2个USB摄像头,通过插拔,确定摄像头的ID是哪个!


    2.将端口重映射到新的固定的名字:

    将端口重映射到新的固定的名字,并且设置其权限为可读。使用对应的id端口映射到固定的名字上(看不懂无所谓,按教程来,往下走)
    终端输入:

    sudo vi /etc/udev/rules.d/rplidar.rules
    

    1.按i,进入编辑模式
    2.复制以下代码,修改ID,自定义设备的名字

    KERNEL=="video*", ATTRS{idVendor}=="038f", ATTRS{idProduct}=="6001", MODE:="0777", SYMLINK+="people_video"
    

    在这里插入图片描述
    3.按Esc,输入 :wq (保存退出)
    创建生效后重新插拔一下USB摄像头


    3.查看USB摄像头是否重映射:

    ls -l /dev |grep video
    

    在这里插入图片描述
    我这里两个摄像头都映射成功了!


    4.在树莓派python上的应用:

    平时我们是这样子使用的:
    cap = cv2.VideoCapture(0) # 打开USB摄像头对象

    现在精准打开某个摄像头

    cap = cv2.VideoCapture("/dev/people_video")  # 打开人体识别摄像头
    
    cap = cv2.VideoCapture("/dev/goods_video")  # 打开物体识别摄像头
    

    总结:理论上不管USB摄像头插在那个usb端口上,什么时候上电,都能通过 /dev/people_video (自己定义的名字)打开相对应的摄像头

    遇到的问题:

    在这里插入图片描述

    展开全文
  • Linux操作系统下看到的USB摄像头 root@ubuntu-20-04-2-lts:/home/zhao# ls /dev/video*/dev/video0 /dev/video1 /dev/video2 /dev/video3root@ubuntu-20-04-2-lts:/home/zhao# 可以看到/dev/video0 /dev/video1 /...

    Linux操作系统下看到的USB摄像头

    root@ubuntu-20-04-2-lts:/home/zhao# ls /dev/video*
    /dev/video0  /dev/video1  /dev/video2  /dev/video3
    root@ubuntu-20-04-2-lts:/home/zhao#

    可以看到/dev/video0  /dev/video1  /dev/video2  /dev/video3四个设备,实际上真实的设备是偶数设备/dev/video0 和/dev/video2,奇数设备为虚拟设备,不可用;

    opnecv下的VideoCapture();函数的库在windows下和linux下是不同的;

    Windows下使用Opencv打开USB摄像头,0就是VideoCapture(0),1就是VideoCapture(1),不存在虚拟设备;

    Linux/Ubuntu下使用Opencv打开USB摄像头,0就是VideoCapture(200+0),1是虚拟设备,2就是VideoCapture(200+2),3是虚拟设备,依次类推。

    具体原因见:https://blog.csdn.net/jirryzhang/article/details/73465298

    展开全文
  • 使用OPENCV和DirectShow 实现了两个USB摄像头同步工作 并且在一个窗口中显示 并且做了一些简单的轮廓提取 (基于VC2010+opencv2.4.4,注意修改VC++设置)
  • 我们如何使用OpenCV打开摄像头并获取从摄像头得到的视频流数据呢?下面,我们会使用VS2019和OpenCV实现该功能。 先上代码:#include#include using namespace cv;int main() { VideoCapture capture(0); //从摄像头...

    6f5065c407452349bdd9f93b113f0375.png

          我们如何使用OpenCV打开摄像头并获取从摄像头得到的视频流数据呢?下面,我们会使用VS2019和OpenCV实现该功能。

          先上代码:

    #include#include using namespace cv;int main() {    VideoCapture capture(0);  //从摄像头读入视频    Mat edges;        while (1)    {        Mat frame;        capture >> frame;        // imshow("当前摄像头读取视频",frame);        // waitKey(30);     //延时30ms        cvtColor(frame, edges, CV_BGR2GRAY);         imshow("当前摄像头读取视频", frame);        waitKey(30);    }    return 0;}

        从代码中,我们可以看到,使用了一个VideoCapture类的变量数组来控制我们电脑的摄像头,其中capture(0)中的 “0”指的就是电脑的摄像头,如果我们想用外接的摄像头怎么办呢?当初我也查了些资料,最后发现只要把 capture(0)中的 “0” 改成 “1” 就可以实现对外接摄像头的控制。使用cvtColor()函数对摄像头的每一帧图像进行灰度化,其实就是把彩色的视频流数据变成黑白的。

        接下来我们看看代码效果如何:

    430268d5aa5e65e5aa8cd846f9892f9e.png

    22bce9f076e2bb960b318bb4a36d89f2.png

    实时使用电脑摄像头获取视频流数据很成功!

    那么我们试试外接USB摄像头看看,这里我们使用的是这个外接摄像头:

    c77672bb8f47e9bdd0678ddceda30a69.png

    我们改一下代码,看看效果:

    0a399fa1022148d82771d75ffed39743.png

    2a344a9187296a4bbd5ec91f6592b2a1.png

    使用外接USB摄像头也没问题!

    关注一下,一起学习吧!学习更多知识,丰富你我!

    2ce8ec2b8ca3d006b660575ccecbdf86.gif

    若有问题或建议请反馈到我们的邮箱:

    http://www.znwkxt@sina.com

    欢迎反馈!

    有你我们将更加努力!

    82b56f4c2745cc7b5fa0c1619ea71669.gif丰富知识点这里 d5638544d0d014651624a6b416a30ca6.png长按二维码识别

    b8893526469ee3dd29d7156c5644dfed.png

    展开全文
  • 最近做项目时发现打开双相机的python程序在自己的笔记本上都可以运行,可是落地的时候放到车间的工作机上就非常不稳定,有时能够打开相机,有时又报错,报错的原因就是有相机没打开。 在网上搜索相关问题,感觉可行...
  • 通过OpenCV的类VideoCapture如何将PCIe采集卡的摄像头跟USB摄像头区别开来,打开指定的摄像头。
  • Ubuntu 下使用opencv打开usb 摄像头

    千次阅读 2018-12-26 11:42:38
    opencv 安装 1.安装 ...可以看到很相关包都会被安装:  2.测试 安装后用简单代码进行测试 /****opencv_test.cpp***/ #include <iostream> #include <opencv...
  • 我们知道由于USB带宽与摄像头像素的因素,一台电脑通常只能同时启动2个摄像头。 在很项目中我们需要启动2以上就带来了麻烦。 可以通过摄像头轮询的方式解决这问题,随意多少都可以启动。 效果视频连接:...
  • 使用OpenCv同时读取两摄像头,并实时显示视频,可以读取usb摄像头,海康等网络摄像头。 #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #...
  • VS2010 + OpenCV2.3.1打开多个摄像头

    千次阅读 2016-07-15 16:39:33
    最近OpenCV更新到2.3.1的版本了,而自己之前使用的是2.1的版本,最近一段时间也是去研究OpenNI的代码去了,所以对于2.3.1的版本新增的功能也没有很的了解。这次就了解OpenCV2.3.1版本与OpenCV2.1的区别做了以下...
  • 这是一个通过C++获取电脑上连接的多个摄像头的名称和编号,方便opencv开发的时候直接通过摄像头编号获取对应摄像头的数据,也方便直播开发获取摄像头名称。
  • 【计算机视觉】opencv读取多个摄像头标签(空格分隔): 【图像处理】说明:今天蹭了机器视觉课程,讲到了stereopsis,立体视觉,讲到了关于通过多个摄像头获取object的depth信息的事情,因为想到从来没有试过打开多...
  • 使用OpenCV实现同时打开个USB摄像头,并实时显示视频。如果未检测有两个摄像头,程序会结束并发出“摄像头未安装好”的警告。这里推荐一个小巧的摄像头视频捕捉软件:amcap,使用它可以方便的检查每个摄像头是否能...
  • Opencv无法同时连接多个摄像头

    千次阅读 2019-05-25 22:27:01
    我在最近的一次实验中尝试使用opencv同时调用 4 个usb摄像头(usb3.0)进行拍照,但却一直报 Invalid argument 的错误,表明有摄像头没有输入。当我把摄像头的数目减少为 3 个时就没有出现任何问题。经查阅资料得知...
  • 可以知道摄像头分为CIS摄像头,USB摄像头,网络摄像头。 摘自:https://mp.weixin.qq.com/s/RcHXgyelZbBg0XD8-bRxUw NVIDIA Jetson Nano 2GB 系列文章(7):通过 OpenCV 调用 CSI/USB 摄像头 NVIDIA英伟达企业...
  • VS2010 opencv2.2 directshow 同时显示两个USB摄像头 详细介绍,包括所遇到错误,以及解决错误的方法参见地址: ...
  • 我正在尝试使用MacOS 10.11访问openCV中的多个USB摄像头 . 我的目标是通过USB四通道扩展将最多20台摄像机连接到电脑并拍摄单张图像 . 我不需要直播 .我尝试使用以下代码,我可以从所有摄像头拍摄一张图像(目前只有3...
  • 使用OpenCV实现同时打开个USB摄像头,并实时显示视频。如果未检测有两个摄像头,程序会结束并发出“摄像头未安装好”的警告。这里推荐一个小巧的摄像头视频捕捉软件:amcap,使用它可以方便的检查每个摄像头是否能...
  • 采用OpenCV中的VideoCapture类获取USB摄像头的数据时,使用下列代码 #include "pch.h" #include "highgui.hpp" #include "imgproc.hpp" #include "time.h" #include "windows.h" #include <iostream> #include...
  • Opencv4+v4l2以mjpeg读取双目摄像头
  • Python+Opencv 调用USB摄像头(一)

    万次阅读 多人点赞 2019-04-07 21:51:00
    你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。 cv2.imshow('image',img) 1.7.为什么使用Python-OpenCV 虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是...
  • C# 用OpenCV打开视频和摄像头

    千次阅读 2019-11-22 08:38:25
    关于OpenCVSharp的安装,用Nuget搜OpenCVSharp就会出来一下载量比较的library,点击安装后会在解决方案中出现 x64和 x86两文件,同时在 引用 中会自动加入 OpenCvSharp等几library这时便可以在C#中使用...
  • 接触图像领域的应该对于opencv都不会感到陌生,这应该算是功能十分强劲的一算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现该库难以安装成功的情况,现在这问题就不存在了,需要安装包...
  • pycharm工程python调用OpenCV实现USB摄像头实时人脸检测,统计每帧人脸检测消耗的时间,并实时保存人脸截图

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,755
精华内容 1,102
关键字:

opencv打开多个usb摄像头