Arducam 16MP IMX298 only producing 2MP images

I recently bought 8 psc 16MP IMX298 cameras but for some reason the images outputed are max 1600x1200px, but should be 4656,3496. I’m using python to take images, with pygame libery. Code is:

import pygame.image
import os

# initialize Pygame

# initialize Pygame camera

# get the list of available cameras
cameras =


print("Cameras:", cameras)

# if there are no cameras, exit the script
if not cameras:
    print("No cameras found.")

# create a Pygame camera object with the first available camera
camera =[0], (4656,3496))

# start capturing images from the camera

# capture an image
image = camera.get_image()

# save the image to a file, "image.jpg")

# stop capturing images from the camera

# quit Pygame

If anyone knows how to get the full resolution using python, help would be very appreciated!


Can you try it with opencv?

We actually do have the same issue and cant find a solution to it.
USB 16MP Wide Angle Camera Module

In Windows 11 it works instantly but we need it to work on our Nvidia Jetson Orin AGX running Jetson Linux 35.3.1.
Opening the program Cheese lets us only select at max. 1600x1200 and the issue persists once we try accesing it via Gstreamer or OpenCV.

Got it working with OpenCV

Try this python script

import cv2

capture = cv2.VideoCapture(0, cv2.CAP_V4L2)
capture.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 4656)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 3496)  

    # Take picture
    frame =
    # Show picture in opencv
    cv2.imshow('frame', frame)
    # Press q too quit
    if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.imwrite("min_bild.jpg", frame)

doesnt work for us.
as soon as we set a resolution above 1600x1200 it crashes.