首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时运行Raspi + Lepton FLIR相机

同时运行Raspi + Lepton FLIR相机
EN

Stack Overflow用户
提问于 2021-12-07 21:43:00
回答 1查看 175关注 0票数 0

我正在寻找,如果我可以运行Raspi和Lepton相机,同时在蟒蛇代码和OpenCV的jetson。我可以通过这个命令从终端运行两个摄像头。

代码语言:javascript
复制
gst-launch-1.0 nvarguscamerasrc sensor_mode=0 ! 'video/x-raw(memory:NVMM),width=3264, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=2 ! 'video/x-raw,width=800, height=600' ! videoconvert ! ximagesink & gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-raw,format=UYVY ! videoscale ! video/x-raw,width=800,height=600 ! videoconvert ! ximagesink

我正在寻找能否在这个python / opencv代码中实现上面的命令

代码语言:javascript
复制
import cv2
print(cv2.__version__)
dispW=640
dispH=480
flip=2

camSet='nvarguscamerasrc !  video/x-raw(memory:NVMM), width=3264, height=2464, format=NV12, framerate=21/1 ! nvvidconv flip-method='+str(flip)+' ! video/x-raw, width='+str(dispW)+', height='+str(dispH)+', format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink'
cam= cv2.VideoCapture(camSet)
 
while True:
    ret, frame = cam.read()
    cv2.imshow('nanoCam',frame)
    if cv2.waitKey(1)==ord('q'):
        break
cam.release()
cv2.destroyAllWindows()
EN

回答 1

Stack Overflow用户

发布于 2021-12-09 19:17:25

虽然我理解您的示例提供了一些灵活性,但以比处理所需的分辨率更高的分辨率捕获是没有什么意义的,而且可能会花费资源时间。

nvarguscamerasrc应该(在某种程度上)能够管理缩放。

假设你的FLIR相机可以达到30 fps,你可以尝试:

代码语言:javascript
复制
import cv2
print(cv2.__version__)

cam0= cv2.VideoCapture('nvarguscamerasrc !  video/x-raw(memory:NVMM), width=800, height=600, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink drop=1', cv2.CAP_GSTREAMER)
if not cam0.isOpened():
    print 'Failed to open cam0'
    exit

cam1= cv2.VideoCapture('v4l2src device=/dev/video1 ! video/x-raw,format=UYVY,framerate=30/1 ! videoscale ! video/x-raw,width=800,height=600 ! videoconvert ! video/x-raw,format=BGR ! appsink drop=1', cv2.CAP_GSTREAMER)
if not cam1.isOpened():
    print 'Failed to open cam1'
    exit

while True:
   ret, frame0 = cam0.read()
   ret, frame1 = cam1.read()
   cv2.imshow('Cam0',frame0)
   cv2.imshow('Cam1',frame1)
   if cv2.waitKey(1)==ord('q'):
       break

cam.release()
cv2.destroyAllWindows()

编辑:不确定以下内容是否适用于USB摄像机

由于您的FLIR相机提供UYVY,您可以尝试使用nvv4l2camerasrc插件,而不是v4l2src。确保传感器处于UYVY模式,并尝试利用HW中的缩放和颜色转换:

代码语言:javascript
复制
cam1= cv2.VideoCapture('nvv4l2camerasrc device=/dev/video1 ! video/x-raw(memory:NVMM),format=UYVY,framerate=30/1 ! nvvidconv ! video/x-raw,format=BGRx,width=800,height=600 ! videoconvert ! video/x-raw,format=BGR ! appsink drop=1', cv2.CAP_GSTREAMER)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70267292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档