一、参考资料

Jetson TX2板载摄像头(一)

二、板载摄像头工具包

# --------------------------------------------------------
# Camera sample code for Tegra X2/X1
#
# This program could capture and display video from
# IP CAM, USB webcam, or the Tegra onboard camera.
# Refer to the following blog post for how to set up
# and run the code:
#   https://jkjung-avt.github.io/tx2-camera-with-python/
#
# Written by JK Jung <jkjung13@gmail.com>
# --------------------------------------------------------import sys
import argparse
import subprocessimport cv2WINDOW_NAME = 'CameraDemo'def parse_args():# Parse input argumentsdesc = 'Capture and display live camera video on Jetson TX2/TX1'parser = argparse.ArgumentParser(description=desc)parser.add_argument('--rtsp', dest='use_rtsp',help='use IP CAM (remember to also set --uri)',action='store_true')parser.add_argument('--uri', dest='rtsp_uri',help='RTSP URI, e.g. rtsp://192.168.1.64:554',default=None, type=str)parser.add_argument('--latency', dest='rtsp_latency',help='latency in ms for RTSP [200]',default=200, type=int)parser.add_argument('--usb', dest='use_usb',help='use USB webcam (remember to also set --vid)',action='store_true')parser.add_argument('--vid', dest='video_dev',help='device # of USB webcam (/dev/video?) [1]',default=1, type=int)parser.add_argument('--width', dest='image_width',help='image width [1920]',default=1920, type=int)parser.add_argument('--height', dest='image_height',help='image height [1080]',default=1080, type=int)args = parser.parse_args()return argsdef open_cam_rtsp(uri, width, height, latency):gst_str = ('rtspsrc location={} latency={} ! ''rtph264depay ! h264parse ! omxh264dec ! ''nvvidconv ! ''video/x-raw, width=(int){}, height=(int){}, ''format=(string)BGRx ! ''videoconvert ! appsink').format(uri, latency, width, height)return cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)def open_cam_usb(dev, width, height):# We want to set width and height here, otherwise we could just do:#     return cv2.VideoCapture(dev)gst_str = ('v4l2src device=/dev/video{} ! ''video/x-raw, width=(int){}, height=(int){} ! ''videoconvert ! appsink').format(dev, width, height)return cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)def open_cam_onboard(width, height):gst_elements = str(subprocess.check_output('gst-inspect-1.0'))if 'nvcamerasrc' in gst_elements:# On versions of L4T prior to 28.1, add 'flip-method=2' into gst_strgst_str = ('nvcamerasrc ! ''video/x-raw(memory:NVMM), ''width=(int)2592, height=(int)1458, ''format=(string)I420, framerate=(fraction)30/1 ! ''nvvidconv ! ''video/x-raw, width=(int){}, height=(int){}, ''format=(string)BGRx ! ''videoconvert ! appsink').format(width, height)elif 'nvarguscamerasrc' in gst_elements:gst_str = ('nvarguscamerasrc ! ''video/x-raw(memory:NVMM), ''width=(int)1920, height=(int)1080, ''format=(string)NV12, framerate=(fraction)30/1 ! ''nvvidconv flip-method=2 ! ''video/x-raw, width=(int){}, height=(int){}, ''format=(string)BGRx ! ''videoconvert ! appsink').format(width, height)else:raise RuntimeError('onboard camera source not found!')return cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)def open_window(width, height):cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL)cv2.resizeWindow(WINDOW_NAME, width, height)cv2.moveWindow(WINDOW_NAME, 0, 0)cv2.setWindowTitle(WINDOW_NAME, 'Camera Demo for Jetson TX2/TX1')def read_cam(cap):show_help = Truefull_scrn = Falsehelp_text = '"Esc" to Quit, "H" for Help, "F" to Toggle Fullscreen'font = cv2.FONT_HERSHEY_PLAINwhile True:if cv2.getWindowProperty(WINDOW_NAME, 0) < 0:# Check to see if the user has closed the window# If yes, terminate the programbreak_, img = cap.read() # grab the next image frame from cameraif show_help:cv2.putText(img, help_text, (11, 20), font,1.0, (32, 32, 32), 4, cv2.LINE_AA)cv2.putText(img, help_text, (10, 20), font,1.0, (240, 240, 240), 1, cv2.LINE_AA)cv2.imshow(WINDOW_NAME, img)key = cv2.waitKey(10)if key == 27: # ESC key: quit programbreakelif key == ord('H') or key == ord('h'): # toggle help messageshow_help = not show_helpelif key == ord('F') or key == ord('f'): # toggle fullscreenfull_scrn = not full_scrnif full_scrn:cv2.setWindowProperty(WINDOW_NAME, cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)else:cv2.setWindowProperty(WINDOW_NAME, cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_NORMAL)def main():args = parse_args()print('Called with args:')print(args)print('OpenCV version: {}'.format(cv2.__version__))if args.use_rtsp:cap = open_cam_rtsp(args.rtsp_uri,args.image_width,args.image_height,args.rtsp_latency)elif args.use_usb:cap = open_cam_usb(args.video_dev,args.image_width,args.image_height)else: # by default, use the Jetson onboard cameracap = open_cam_onboard(args.image_width,args.image_height)if not cap.isOpened():sys.exit('Failed to open camera!')open_window(args.image_width, args.image_height)read_cam(cap)cap.release()cv2.destroyAllWindows()if __name__ == '__main__':main()

Jetson TX2板载摄像头(二)相关推荐

  1. Jetson TX2板载摄像头(一)

    一.参考资料 How to Capture and Display Camera Video with Python on Jetson TX2 tegra-cam.py gstreamer基础教程 ...

  2. Jetson TX1板载摄像头测试

    Data: 2016.12.21 Author: cjh Theme: Test the default camera 继上一篇完成了Jetson TX1的刷机之后,想测测板子上相关的硬件,自己最好奇 ...

  3. Jetson TX2板载相机opencv调用打开

    查看全文 http://www.taodudu.cc/news/show-1217164.html 相关文章: 单独像对相对定向的部分基本概念 单独像对相对定向元素解析 模型点计算 连续法相对定向元素 ...

  4. 【玩转Jetson TX2 NX】(七)TX2 NX YoLoV4环境搭建+板载摄像头实时目标检测(详细教程+错误解决)

    1 YoLoV4环境搭建 直接下载,然后解压,最后移动到Jetson TX2 NX,如图所示,darknet下载链接: https://github.com/AlexeyAB/darknet 将解压的 ...

  5. Jetson nano 入手系列之2—板载摄像头IMX219启动

    Jetson nano 入手系列之2-板载摄像头IMX219启动 1.亚克力板安装 2.摄像头启动 3.nvgstcapture常用命令 3.1 Set sensor orientation 3.2 ...

  6. ESP32-CAM 板载摄像头模块进行简单的图像采集和网络传输。

    ESP32-CAM 是一款集成了 Wi-Fi 和图像传感器的开发板,它可以用于实现基于 Arduino 平台的物联网应用和图像处理等项目.本文将介绍如何使用 ESP32-CAM 板载摄像头模块进行简单 ...

  7. Jetson TX2使用USB摄像头

    我使用的是aoni奥尼免驱USB摄像头,在TX2下的ubuntu系统中也不用安装驱动,使用方便配置简单. 输入: ls /dev/video* 将检测到两个摄像头,/dev/video0 是 TX2 ...

  8. Jetson TX1板载相机opencv调用打开

    Jetson TX1 打开板载相机方式. 相关链接1:https://devtalk.nvidia.com/default/topic/987537/jetson-tx1/videocapture-f ...

  9. 【ARM-Linux开发】【CUDA开发】【深度学习与神经网络】Jetson Tx2安装相关之二

    前言 本文主要参考YouTube视频,<JetPack 3.0 - NVIDIA Jetson TX2>  视频链接如下: https://www.youtube.com/watch?v= ...

最新文章

  1. 博客园上海俱乐部第二次活动全程图片报道(多图)
  2. 正睿 2018 提高组十连测 Day4 T3 碳
  3. 学习python:练习3.随机生成200个序列号存入文件
  4. redo log重做日志缓冲
  5. win10 mysql 远程连接_win10 docker部署mysql并启动远程连接
  6. 程序员的国庆节如何安排,你想好了吗?
  7. 鸿蒙系统的全面开源,华为:打造全球的操作系统,鸿蒙今日全面开源!
  8. 移动端点击延迟300ms传说 你听过吗
  9. golang 操作日期_使用Godate在Golang中轻松进行日期操作
  10. JavaScript学习(三十)—事件对象
  11. iOS 7状态栏在iPhone应用程序中恢复到iOS 6默认样式?
  12. 会安装oracle数据库吗,搭建安装oracle数据库
  13. php转到qq并分享,php怎么实现qq分享
  14. vue选项卡切换,某个组件缓存数据keep-alive demo
  15. validate简介及使用方法与默认的校验规则
  16. 突破固化思维,如何快速做好陌生领域数据分析?
  17. 点云纹理映射 matlab,一种点云模型纹理映射方法与系统与流程
  18. 对话独角兽得物(毒)App CTO 陈思淼:组建技术团队的十件事
  19. 数据结构:关于链表直接free(p)会不会造成断链
  20. 展望下未来的计算机400字,展望未来作文400字

热门文章

  1. linux企业防火墙软件,掌握Linux防火墙经典应用 让企业网络更安全
  2. 1.编程实现“油耗计算机程序”。要求:输入加油金额、公里数、汽油价格,单击“计算”按钮,显示百公里油耗。界面如图:
  3. 如何成长为优秀的架构师?架构师成长的4大必经之路
  4. qq群邮件的html文件怎么打开,qq群邮件在哪个位置怎么查看
  5. UVCCamera gradle配置
  6. java jxl 教程,java action jxl 生成并下载excel
  7. Microsoft Outlook2007 设置
  8. C++采草药问题(动态规划)
  9. 计算机专业台式机好还是笔记本,科普:台式机显卡和笔记本显卡有啥不同?
  10. PC端微信内置浏览器调试