- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的相机显示绿屏。我正在使用 IMX 219 我不知道为什么相机给出 this output
import cv2
cap=cv2.VideoCapture(0)
while True:
r,im=cap.read()
cv2.imshow('dd',im)
k=cv2.waitKey(30) & 0xff
if k==27:
break
cap.release()
cv2.destroyAllWindows()
最佳答案
再见,
一般理论
如 this link 中所述,您可以使用 v4l2-ctl
以确定相机功能。 v4l2-ctl
在 v4l-utils
:
$ sudo apt-get install v4l-utils
进而:
$ v4l2-ctl --list-formats-ext
寻找相同的链接和
this other ,我看到你也可以快速测试你的相机启动:
# Simple Test
# Ctrl^C to exit
# sensor_id selects the camera slot: 0 or 1 on Jetson Nano B01
$ gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! nvoverlaysink
这个简单的
gst-launch
示例可用于确定您正在使用的传感器报告的相机模式。例如说你得到这个输出:
GST_ARGUS: 3264 x 2464 FR = 21.000000 fps Duration = 47619048 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000
那么你应该相应地调整下一个命令:
$ gst-launch-1.0 nvarguscamerasrc sensor_id=1 ! \
'video/x-raw(memory:NVMM),width=3264, height=2464, framerate=21/1, format=NV12' ! \
nvvidconv flip-method=0 ! 'video/x-raw, width=816, height=616' ! \
nvvidconv ! nvegltransform ! nveglglessink -e
sensor_id=1
代表正确的CSI摄像头插槽,可以是
0
或
1
.正如您从
this link 中看到的,较新的 Jetson Nano 开发套件带有两个 CSI 摄像头插槽,您可以使用此属性指定正确的一个 [
0
是默认值]。请注意,在同一链接中,他们使用
sensor_mode
而不是
sensor_id
,我会同时尝试。您不一定需要包含
flip-method
记录在案
here尽管。所有这些都应该让您了解要插入代码中的值
width=816, height=616
]。如果您遇到问题,请检查您的显示宽度和高度是否与选择的相机帧尺寸相同[在上例中,816 和 616 分别是 3264 和 2464 的四分之一]
cap = cv2.VideoCapture('nvarguscamerasrc ! video/x-raw(memory:NVMM), width=3280, height=2464, format=(string)NV12, framerate=(fraction)20/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink', cv2.CAP_GSTREAMER)
但是,在您的情况下,如果帧大小等于
3280x2464
,IMX 219 的 20fps 会太高。 .正如您从
this link 的第一个表中看到的那样建议值为 15fps 而
here他们建议21fps。我建议你从
width
开始,
height
,
framerate
上一节中检索到的值。一个
framerate
低于标称值的值应该可以帮助您测试连接性
cap = cv2.VideoCapture('nvarguscamerasrc ! video/x-raw(memory:NVMM), width=3280, height=2464, format=(string)NV12, framerate=(fraction)15/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink', cv2.CAP_GSTREAMER)
包含上一行的完整示例
更新了正确的值 有货
from here :
# MIT License
# Copyright (c) 2019 JetsonHacks
# See license
# Using a CSI camera (such as the Raspberry Pi Version 2) connected to a
# NVIDIA Jetson Nano Developer Kit using OpenCV
# Drivers for the camera and OpenCV are included in the base image
import cv2
# gstreamer_pipeline returns a GStreamer pipeline for capturing from the CSI camera
# Defaults to 1280x720 @ 60fps
# Flip the image by setting the flip_method (most common values: 0 and 2)
# display_width and display_height determine the size of the window on the screen
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,
)
)
def show_camera():
# To flip the image, modify the flip_method parameter (0 and 2 are the most common)
print(gstreamer_pipeline(flip_method=0))
cap = cv2.VideoCapture(gstreamer_pipeline(flip_method=0), cv2.CAP_GSTREAMER)
if cap.isOpened():
window_handle = cv2.namedWindow("CSI Camera", cv2.WINDOW_AUTOSIZE)
# Window
while cv2.getWindowProperty("CSI Camera", 0) >= 0:
ret_val, img = cap.read()
cv2.imshow("CSI Camera", img)
# This also acts as
keyCode = cv2.waitKey(30) & 0xFF
# Stop the program on the ESC key
if keyCode == 27:
break
cap.release()
cv2.destroyAllWindows()
else:
print("Unable to open camera")
if __name__ == "__main__":
show_camera()
在
this other link 上还有一个完整的片段可用。这可以帮助您找到失败的原因
import cv2
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
def read_cam():
cap = cv2.VideoCapture("nvarguscamerasrc ! video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080,format=(string)NV12, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink")
if cap.isOpened():
cv2.namedWindow("demo", cv2.WINDOW_AUTOSIZE)
while True:
ret_val, img = cap.read();
cv2.imshow('demo',img)
if cv2.waitKey(30) == ord('q'):
break
else:
print ("camera open failed")
cv2.destroyAllWindows()
if __name__ == '__main__':
print(cv2.getBuildInformation())
Gst.debug_set_active(True)
Gst.debug_set_default_threshold(3)
read_cam()
最后,如果您可以从命令行在 GStreamer 中打开相机,但不能在 Python 中打开相机,请使用以前的
print(cv2.getBuildInformation())
检查 OpenCV 版本。或更短时间:
print(cv2.__version__)
从 L4T 32.2.1/JetPack 4.2.2 开始,GStreamer 支持内置于 OpenCV 中。这些版本的 OpenCV 版本是 3.3.1,如果您使用早期版本的 OpenCV [很可能从 Ubuntu 存储库安装],您将获得
Unable to open camera
错误
关于opencv - 打开 cv 在 jetson nano 上显示绿屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64272731/
根据 https://elinux.org/Jetson,我目前正在尝试将 Jetson TX1 与 jetson NANO 进行基准测试。 ,它们都具有 maxwell 架构,NANO 有 128
我正在Jetson TK1上开发OpenCV应用程序。我正在使用NVIDIA提供的OpenCV4Tegra软件包。 dpkg -l输出: ii libopencv4tegra
我正在尝试从我的 mac 远程访问 Jetson Nano。到目前为止,我已经完成了以下工作: 我在我的 Mac 上安装了 microsoft Remote Desktop 我通过 Micro-usb
昨天收到了我的 Jetson TK1。将其拆箱并配置 Linux GUI 后,使用连接到其 USB 3.0 端口的鼠标(无绳)重新启动设备会将其带到某种命令行页面,它可能会在其中加载一些文件,然后屏幕
这个问题在这里已经有了答案: QT can't find openCV's libs (2 个答案) 关闭 8 年前。 我有一个程序可以在我的机器上正常编译/运行。我刚拿起一个 Nvidia Jet
我正在使用 gcc arm 交叉编译器 (arm-eabi-g++) 编译应用程序。我想在 jetson tk1 目标上执行代码。当我复制可执行文件并在目标上运行它时。我收到一条错误消息 -bash:
我用最新的 Jetpack (Linux For Tegra R23.2) 刷新了我的 Jetson TX1,并且以下命令完美运行: gst-launch-1.0 nvcamerasrc fpsRan
在我的 Arduino Due 上工作了很长时间之后,我需要一个更好、更强大的原型(prototype)设计平台来用于我 future 的项目。为此,我已经订购了 NVIDIA Jetson Tegr
我不是很熟悉 ARM 处理器的内部细节,但我不明白我的 Nvidia Jetson Nano 开发板上的以下行为。 C 代码示例 ... //main.c #include int main() {
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关专业服务器或网络相关基础设施管理的问题。您可以编辑问
我想在本地网络中为 Jetson Nano 设置一个静态 IP。我试过的: -- 更改路由器上的 DHCP。 -- 使用以下内容编辑/etc/network/interfaces: auto eth0
对不起,如果我的描述冗长乏味,但我想给你最重要的细节来解决我的问题。 最近,我终于买了一个 Jetson Nano 开发工具包,它有 4Gb 的 RAM,为了获得我认为的对象检测的最佳配置,我遵循了
有人在任何 Nvidia Jetson 产品上使用过 Tensorflow Lite 吗?我想使用我的 Jetson Nano 进行推理,并希望通过使用 GPU 的 tf-lite 进行推理。 令人困
我想在NVIDIA Jetson Nano上运行Google AutoML Vision的导出模型。由于很容易,我想使用预构建的容器根据官方Edge containers tutorial进行预测。
我正在设置一个 nvidia jetson nano 来运行 docker 容器。我正在使用我已经在我的 x86_64 Ubuntu 16.04 机器上使用的安装过程,docker 运行顺畅。尽管如此
Linux 4 Tegra随附的OpenCv for Tegra设备是否在下面使用了NPP和OpenVX?还是我必须自己进行此类优化? 对指向证明的链接的任何引用将不胜感激。 最佳答案 您可以查找op
我正在尝试为Python 3 PyTorch创建一个简单的Yocto Python食谱。目标是Yocto从meta-tegra层为NVIDIA Jetson Nano制作的SD卡镜像。没有这些配方,我
The official webpage for the Jetson TK1对于新用户来说相当复杂,我找不到文档/网页/书籍/类(class)来开始研究 Jetson TK1 的 API,重点是 G
我正在使用 Jetson TX2 和 Arduino Uno 尝试通过 USB 串口进行通信,前提是我正在使用 Arduino 与一些激光 ToF 传感器和热电堆进行通信。 Jetson 正在运行 U
我想在 Jetson-nano 上运行 ZoneMinder 作为 IP CAM 服务器,但 Jetson nano 似乎无法处理许多使用 ffmpeg 的摄像头用于解码。 如果我在 ZoneMind
我是一名优秀的程序员,十分优秀!