jetson nano 用opencv使用摄像头(CSI和USB)

这篇具有很好参考价值的文章主要介绍了jetson nano 用opencv使用摄像头(CSI和USB)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.测试摄像头是否可用

查看是否连接到摄像头

 CSI摄像头测试

USB摄像头测试

2.若以上步骤正常,进行oepncv读取摄像头数据

(1)CSI摄像头

1.安装v4l2-utils协助工具

2.查看摄像头详细参数--支持的图片大小和对应帧率

3.安装管道gstreamer库

4.使用opencv读取图片例程

(2)USB摄像头文章来源地址https://www.toymoban.com/news/detail-481545.html


1.测试摄像头是否可用

查看是否连接到摄像头

ls /dev/video*

 CSI摄像头测试

nvgstcapture-1.0

USB摄像头测试

#首先安装camorama库
sudo apt-get install camorama
#然后运行
camorama /dev/video0 #这里我只安装了USB摄像头

2.若以上步骤正常,进行oepncv读取摄像头数据

(1)CSI摄像头

1.安装v4l2-utils协助工具

sudo apt install v4l-utils 

2.查看摄像头详细参数--支持的图片大小和对应帧率

v4l2-ctl --device=/dev/video0 --list-formats-ext

3.安装管道gstreamer库

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev

4.使用opencv读取图片例程

#coding=utf-8
import cv2

# 设置gstreamer管道参数
def gstreamer_pipeline(
    capture_width=1280, #摄像头预捕获的图像宽度
    capture_height=720, #摄像头预捕获的图像高度
    display_width=1280, #窗口显示的图像宽度
    display_height=720, #窗口显示的图像高度
    framerate=60,       #捕获帧率
    flip_method=0,      #是否旋转图像
):
    return (
        "nvarguscamerasrc ! "
        "video/x-raw(memory:NVMM), "
        "width=(int)%d, height=(int)%d, "
        "format=(string)NV12, framerate=(fraction)%d/1 ! "
        "nvvidconv flip-method=%d ! "
        "video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
        "videoconvert ! "
        "video/x-raw, format=(string)BGR ! appsink"
        % (
            capture_width,
            capture_height,
            framerate,
            flip_method,
            display_width,
            display_height,
        )
    )

if __name__ == "__main__":
    #根据摄像头参数设置
    capture_width = 1280   #
    capture_height = 720
    framerate = 60			# 帧数
    #展示图片大小
    display_width = 1280
    display_height = 720
    flip_method = 0			# 方向

    # 创建管道
    #管道与视频流绑定
    cap = cv2.VideoCapture(gstreamer_pipeline(capture_width,capture_height,display_width,display_height,framerate,flip_method), cv2.CAP_GSTREAMER)

    if cap.isOpened():
        window_handle = cv2.namedWindow("CSI Camera", cv2.WINDOW_AUTOSIZE)

        # 逐帧显示
        while cv2.getWindowProperty("CSI Camera", 0) >= 0:
            ret_val, img = cap.read()
            cv2.imshow("CSI img", img)

            keyCode = cv2.waitKey(30) & 0xFF
            if keyCode == 27:# ESC键退出
                break

        cap.release()
        cv2.destroyAllWindows()
    else:
        print("open error")

(2)USB摄像头

import cv2

cap = cv2.VideoCapture('./dev/video0') #用ls /dev/video* 可读取出来

while(1):
    ret,frame = cap.read()  
    if ret:
        cv2.imshow("USB_img",frame) 
        keyCode = cv2.waitKey(30) & 0xFF
        if keyCode == 27:# ESC键退出
            break 
    
cap.release()
cv2.destroyAllWindows()

到了这里,关于jetson nano 用opencv使用摄像头(CSI和USB)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jetson nano 智能小车1.0(实现键盘控制、加装摄像头)

    实验剩了一个jetson nano 开发板,闲着也是闲着,拿过来搞点好玩的,jetson nano 和树莓派差不多,加个L298N电机驱动板模块,买两个直流电机就行,目前图省事儿使用无线键盘控制,缺点是不知道程序目前的执行状态,后面考虑加个led指示灯 1.1主要硬件 jetson nano主控板一个 L2

    2024年04月25日
    浏览(43)
  • 树莓派利用python-opencv使用CSI摄像头调用监控视频

    目录 一、安装python-opencv。 二、使用工具Xshell7和MobaXterm 三、连接并打开CSI摄像头 3.1连线如图所示: 3.2打开摄像头 四、编写摄像头代码调用摄像头         一定要选择配置好的安装python-opencv,不要去配置安装,然后还cmake编译,没有必要基本上安装过程都会报2-3个错误,还

    2023年04月17日
    浏览(55)
  • 树莓派CSI摄像头使用python调用opencv库函数进行运动检测识别

    目录 一、完成摄像头的调用 二、利用python调用opencv库函数对图像进行处理 2.1 图像处理大体流程 2.2 opencv调用函数的参数以及含义 2.2.1 ret, img = cap.read() 读取帧图像 2.2.2 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 灰度图像 2.2.3 gray_diff_img = cv2.absdiff(gray_img, previous_img) 帧差法 2.2.4 cv2.thre

    2024年02月15日
    浏览(53)
  • JetsonNano学习(四)OPENCV开启CSI摄像头

    网上非常多的代码打不开CSI摄像头,但是使用 Python2 可以解决,根本原因在于OpenCV版本,Python2库中的CV2版本高于Python3导致,通过更新Python3库中的OpenCV即可解决该问题。 断电安装CSI摄像头,注意排线线缆的方向和正反,安装完成后上电开机。 如果是USB摄像头,安装有手就行

    2024年02月15日
    浏览(45)
  • 解决树莓派原装libcamera(csi)摄像头无法通过opencv读取数据的问题

    1.1 硬件 树莓派4B 树莓派原装CSI摄像头IMX219(libcamera Camera Raspberry Pi) 1.2 软件 64位树莓派arrch64,Debian 11(bullseye) Python3.9 OpenCv 此时返回的ret,frame = (False, None) 继续执行下面这条语句 报错如下 若直接执行 则报错如下 出现上述情况,应该是opencv读取不到摄像头数据所致 接下来排

    2024年02月03日
    浏览(43)
  • 解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题

    最近制作移动设备,需要安置多个usb摄像头到电脑,踩了几个坑,记录一下解决方案。 不能使用分线器插多个usb摄像头,同一时间只能加载一个。 usb摄像头调高分辨率时,非常卡顿,视频画面像果冻一样,及不流畅 第二个情况具体描述: 摄像头支持1920*1080  60fps,opencv在

    2024年02月16日
    浏览(93)
  • opencv在linux上调用usb摄像头进行拍照

    一般video1就是usb摄像头

    2024年02月06日
    浏览(50)
  • Python OpenCV 读取USB摄像头报错问题解决

    Traceback (most recent call last):   File \\\"G:Python图像识别相关学习视频人体姿势检测.py\\\", line 32, in module     cv2.imshow(\\\'image_title\\\',img) cv2.error: OpenCV(4.6.0) D:aopencv-pythonopencv-pythonopencvmoduleshighguisrcwindow.cpp:967: error: (-215:Assertion failed) size.width0 size.height0 in function \\\'cv::imshow\\\' Python 3.8.10 o

    2024年02月05日
    浏览(53)
  • RK3588安装Qt+opencv+采集USB摄像头画面

    Qt:5.12.8 opencv:3.4.14 qt安装 ---------------------------------------------------------------------------------- 因为使用官网下载的版本始终安装失败,所以我可以直接使用命令行进行下载安装: 1:首先先将ubuntu的软件更新,并更新镜像源 sudo apt-get update sudo apt-get upgrade 2:使用如下步骤安装Qt

    2023年04月10日
    浏览(59)
  • 解决OpenCV捕捉USB摄像头时抓帧失败的问题

    笔记本上外接了一个USB相机,用OpenCV打开摄像头捕捉图像结果报错如下: 最开始的代码: videoio(MSMF): can’t grab frame. Error: -2147024809这个报错显示为抓帧失败,以前从来没遇到过这个问题,程序是最简化的程序了肯定不会有问题,一度怀疑是相机不能用。 其实这个问题只与U

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包