1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Jetson Nano使用CSI摄像头以及USB摄像头(CSI摄像头打开失败 USB摄像头打不开)

Jetson Nano使用CSI摄像头以及USB摄像头(CSI摄像头打开失败 USB摄像头打不开)

时间:2023-06-18 18:57:30

相关推荐

Jetson Nano使用CSI摄像头以及USB摄像头(CSI摄像头打开失败 USB摄像头打不开)

目录

一.Jestson Nano打开CSI摄像头

二.Jestson Nano打开USB摄像头

大功告成!编写不易,大家成功后点个关注or赞谢谢~

注意:

网上非常多的代码打不开的原因是要使用Python2!!!Python2!!!Python2!!!重要的事情说三遍!!!可能是因为Gstreamer管道只适用于Python2,如果后期找到Python3能运行的话再更新。

一.Jestson Nano打开CSI摄像头

1.先检查CSI和USB摄像头是否已经连接

ls /dev/vid*

此处可以看到,video0是CSI摄像头,另外三个是USB摄像头

2.代码如下:

# -*- 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 = 1280capture_height = 720display_width = 1280display_height = 720framerate = 60flip_method = 0# 创建管道print(gstreamer_pipeline(capture_width,capture_height,display_width,display_height,framerate,flip_method))#管道与视频流绑定cap = cv2.VideoCapture(gstreamer_pipeline(flip_method=0), 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 Camera", img)keyCode = cv2.waitKey(30) & 0xFF if keyCode == 27:# ESC键退出breakcap.release()cv2.destroyAllWindows()else:print("打开摄像头失败")

3.运行:

python2 文件名.py

二.Jestson Nano打开USB摄像头

同理先查看上一步是否已经有USB摄像头了,如果有了的话可以直接上代码

注:cap = cv2.VideoCapture(3)中的3,可以作修改,比如我输入1就打不开摄像头,但是2和3就可以。这里代码可以直接使用Python3了

python3 文件名.py

# -*- coding: utf-8 -*-import cv2if __name__ == "__main__":cap = cv2.VideoCapture(3)if cap.isOpened():window_handle = cv2.namedWindow("D435", cv2.WINDOW_AUTOSIZE)# 逐帧显示while cv2.getWindowProperty("D435", 0) >= 0:ret_val, img = cap.read()cv2.imshow("D435", img)keyCode = cv2.waitKey(30) & 0xFF if keyCode == 27:# ESC键退出breakcap.release()cv2.destroyAllWindows()else:print("打开摄像头失败")

大功告成!编写不易,大家成功后点个关注or赞谢谢~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。