首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jetson TX2上使用openCV从FLIR玻色子捕获图像问题

在Jetson TX2上使用openCV从FLIR玻色子捕获图像问题
EN

Stack Overflow用户
提问于 2019-01-29 13:05:25
回答 2查看 1.5K关注 0票数 0

当我尝试在Jetson TX2上用OpenCV打开一个网络摄像头(FLIR玻色子)时,它给出了以下错误:

代码语言:javascript
复制
libv4l2: error set_fmt gave us a different result then try_fmt!
VIDEOIO ERROR: libv4l unable convert to requested pixfmt

我使用的是这个python脚本:

代码语言:javascript
复制
import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here

    # Display the resulting frame
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

虽然它确实显示了视频,但它显示了这些错误。相关的原因是我正在尝试让FLIR玻色子与运行这个程序https://github.com/naisy/realtime_object_detection的Jetson TX2一起工作

我有一个常规的网络摄像头工作,但与FLIR玻色子,它提供

代码语言:javascript
复制
libv4l2: error set_fmt gave us a different result then try_fmt!
VIDEOIO ERROR: libv4l unable convert to requested pixfmt
VIDEOIO ERROR: V4L: Initial Capture Error: Unable to load initial memory buffers.
Segmentation fault (core dumped)

出现上述错误并关闭。在我对这个错误的研究中,似乎出现了使用单色摄像头的人,看着这个https://www.flir.com/support-center/oem/is-there-a-way-to-maximize-the-video-display-on-the-boson-app-for-windows-pc-to-full-screen/,我想知道我是否需要配置OpenCV或V4L2驱动程序来为摄像头选择正确的格式以防止错误。

我也有一台Jetson Xavier,同样的物体检测程序也可以在上面运行(它只有一个不同的OpenCV和Tensorflow版本),所以我猜Xavier和TX2上安装的OpenCV上的摄像头格式兼容性略有不同。我对这一切都是新手,所以请原谅我要求更多的澄清。

最后一点信息,这是来自与USB相关的FLIR玻色子手册:

8.2.2 USB Boson能够作为USB视频类(UVC)兼容设备提供数字数据。提供了两个输出选项。注意,这些选项不是通过CCI选择的,而是由用户选择的视频捕获或查看软件选择的。选项包括:

Pre-AGC (16位):输出与阵列中每个像素上入射的通量成线性关系;320配置的输出分辨率为320x256,640配置的输出分辨率为640x512。请注意,AGC设置、缩放设置和颜色编码设置对此轻击点处的输出信号没有影响。此选项由UVC视频格式4CC代码“Y16”(16位未压缩灰度图像)标识。

着色后,YCbCrb:使用指定的调色板将输出转换到YCbCr颜色空间(请参见第6.7节)。320和640配置的分辨率均为640x512。提供三个选项,通过UVC视频格式4CC代码标识:

·I420: 8位Y平面,后跟8位2x2二次采样U和V平面

·NV12: 8位Y平面,后跟具有2x2子采样的交错U/V平面

·NV21:与NV12相同,只是U和V平面的顺序相反

我已经尝试重新安装了几次,尽管刷新TX2和重新安装open CV和Tensorflow需要几个小时。我已经尝试了两种不同的opencv“构建”。我试着用奶酪来查看网络摄像头,从来没有遇到过问题。

EN

回答 2

Stack Overflow用户

发布于 2019-01-29 15:11:59

我不使用Python,但您需要禁用到RGB的转换:

代码语言:javascript
复制
cap.set(cv.CAP_PROP_CONVERT_RGB, 0)

再见,v4l example from OpenCV

票数 0
EN

Stack Overflow用户

发布于 2019-02-12 04:16:12

我找到了一种让它工作的方法,使用下面的工作代码。这似乎是开放式简历与v4l2交互的问题。

代码语言:javascript
复制
pipeline = "v4l2src device=/dev/video1 ! video/x-raw,width=640,height=512,format=(string)I420,pixel-aspect-ratio=1/1, interlace-mode=(string)progressive, framerate=30/1 ! videoconvert ! appsink"
cap = cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER)

https://github.com/FLIR/BosonUSB/issues/13

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54414147

复制
相关文章

相似问题

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