PiCapture Interface PiCapture SD1 with Nvidia Jetson Nano

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #28632
    bjtomasic
    Participant

    Trying to input analog component video to Jetson Nano using the CSI port. Was successfully able to get Raspberry Pi camera V2 to work. When trying to use PiCaptue SD 1 Camera shown as unavailable when running CSI-Camera “simple_camera.py”.

    #28633
    bjtomasic
    Participant

    `# 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 1280×720 @ 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()

    #28635
    bjtomasic
    Participant

    Hardware Configuration

    #28636
    bjtomasic
    Participant

    Error Message Terminal

    #28637
    mwlinder
    Keymaster

    Thank you for posting your experience with Jetson. That is a configuration we have not tried. Unfortunately, your post with the error message can’t be seen – if you could post the message we can take a look and see if there is anything we can think of to resolve the issue.

    #28638
    bjtomasic
    Participant
    #28639
    bjtomasic
    Participant
    #28640
    mwlinder
    Keymaster

    Thanks for the additional detail. The SD1 outputs 640×480 (4:3) video, and I see that you have specified 1280×720 (16:9) as the resolution (which seems to be the default). It is important to make sure that the system is expecting the same resolution and format, and I would start there to resolve the error.

    #28642
    bjtomasic
    Participant

    # 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 1280×720 @ 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_width=640,
    #capture_height=720,
    capture_height=480,
    #display_width=1280,
    display_height=640,
    #display_height=720,
    display_width=480,
    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()

    #28643
    bjtomasic
    Participant
Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.
bjtomasicInterface PiCapture SD1 with Nvidia Jetson Nano