【问题标题】:Issue on Nvidia Jetson Nano and Raspberry Pi V2.1 Camera ( Camera Does Not Open)Nvidia Jetson Nano 和 Raspberry Pi V2.1 摄像头问题(摄像头无法打开)
【发布时间】:2022-07-17 19:54:58
【问题描述】:

我正在使用 Nvidia Jetson Nano 和 Raspberry Pi V2.1 相机通过 Python 和 OpenCV 进行颜色检测。但是,在我的计算机上运行的代码在 Jetson Nano 上不起作用,并且我不断收到错误。相机工作正常,我检查了它。此外,Jetson Nano 正在运行,但相机未打开。我无法解决问题。

这是我的代码:

import cv2
print(cv2.__version__)
dispW=320
dispH=240
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)
lower_red = (147,46,91)
upper_red = (180,255,255)

while True:
    ret, frame=cam.read()

    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    mask = cv2.inRange(hsv, lower_red,upper_red)
    final_frame = cv2.bitwise_and(frame,frame, mask = mask)
    
    cv2.imshow(\"Frame\", frame)
    cv2.imshow(\"Mask\", mask)
    cv2.imshow(\"Final\", final_frame)
    
    if cv2.waitKey(1) ==ord(\"q\"):
        break

cam.release()
cv2.destroyAllWindows()

这是错误:

3.2.0
OpenCV Error: Assertion failed ((scn== 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /build/opencv-XDqSFW/opencv 3.2.0+dfsg/modules/imgproc/src/color.cpp, line 9815 Traceback (most recent call last): 
File \"red.py\", line 15, in <module>
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

cv2.error: /build/opencv-XDqSFW/opencv 3.2.0+dfsg/modules/imgproc/src/color.cpp:9815: error: (-215) (scn== 3 || scn== 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor
  • 你启用了 picamera 吗?须藤 raspi-config
  • 我使用的是 Jetson Nano,而不是 Raspberry Pi。当我在终端上写 \"sudo raspi-config\" 时,它说 \"command not found\"
  • cam = cv2.VideoCapture(camSet, cv2.CAP_GSTREAMER) 或在末尾添加这个 video/x-raw,format=BGR ! appsink drop=1 或者 Opencv 只使用管道字符串(不带单引号)。
  • 这个命令打开了相机,是的。如果我在代码中的 camset 行添加它,你认为它有效吗?
  • 它没有用。显示此错误。 camSet=\'nvarguscamerasrc sensor_id=0 ! \'video/x-raw(memory:NVMM),width=3280, height=2464, framerate=21/1, format=NV12\' ! nvvidconv 翻转方法=2 ! \'视频/x-raw,宽度=816,高度=616\'! nvvidconv ! nvegl变换! nveglglessink -e\' ^ SyntaxError: 无效的语法

标签: python opencv gstreamer nvidia-jetson-nano


【解决方案1】:
  1. 您需要确保使用print(cv2.getBuildInformation()) 使用gstreamer 后端支持编译OpenCV,然后检查Media I/O: 部分。
  2. 您需要确保使用sudo /opt/nvidia/jetson-io/jetson-io.py 拥有configured drivers,然后才能使用命令ls /dev/video* 看到您的凸轮。如果没有,您可能需要删除相机板上的R8 resistor(适用于 Raspberry Camera HQ (IMX477))。

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2018-12-11
    相关资源
    最近更新 更多