Nvidia Jetson Nano和树莓派V2.1相机问题(相机不打开)



我使用Nvidia Jetson Nano和树莓派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
  1. 你需要确保OpenCV是用gstreamer后端支持编译的,使用print(cv2.getBuildInformation()),然后检查Media I/O:部分。
  2. 您需要确保您已经使用sudo /opt/nvidia/jetson-io/jetson-io.py配置了驱动程序,然后您可以使用ls /dev/video*命令看到您的cam。如果没有,可能是您需要移除相机板上的R8电阻(适用于树莓相机HQ (IMX477))。