I have a 4K USB Camera connected to a Raspberry Pi 3 and the same model of camera on a RPi 4. After capturing the image via OpenCV:
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
cap.set(cv2.CAP_PROP_FOURCC, fourcc)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 3840)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 2160)
ret, frame = cap.read()
cv2.imwrite('result.jpg', frame)
This is a 20px on 100px part of the image on the RPi3, on the RPi4 it looks better. Whats the cause of those weird blocks auf pixel which have hard borders? Might it be a problem with the drivers? The RPi3 has no internet, so no apt-get update has been done. Is it a compression problem? Might v4l2-compliance be of use?