I switched over to MJPEGEncoder. I did use cv.imdecode
I also tried out ScalerCrop. It works great, and I could see how I would achieve my 1x, 3x, 5x zoom (as shown below).
What I don't get is how it works (lol).
In my application/camera, I am using headless RPi and while the preview may work (I've seen it work/popup on top of the terminal login on my DSI display), I'm manually capturing frames from the mjpeg server sample code eg. start_recording/streaming output and displaying it via OpenCV.
So when I do something like this:
I would think that the video I'm seeing is a portion of 1332x990 or 2028x1080 referring to that camera modes thread.
Yet it looks like it's full resolution eg. 4056x3040 although scaled down to fit my 640x480 display.
And when I do the scalercrop call above, it works as you'd expect, a zoomed in, middle portion of the image.
I also tried out ScalerCrop. It works great, and I could see how I would achieve my 1x, 3x, 5x zoom (as shown below).
What I don't get is how it works (lol).
In my application/camera, I am using headless RPi and while the preview may work (I've seen it work/popup on top of the terminal login on my DSI display), I'm manually capturing frames from the mjpeg server sample code eg. start_recording/streaming output and displaying it via OpenCV.
So when I do something like this:
Code:
self.video_config_1x = self.picam2.create_video_configuration( main={"size": (640, 480), "format":"RGB888"})self.picam2.controls.ScalerCrop = (1622, 1248, 811, 543) # 4056, 3040Yet it looks like it's full resolution eg. 4056x3040 although scaled down to fit my 640x480 display.
And when I do the scalercrop call above, it works as you'd expect, a zoomed in, middle portion of the image.
Statistics: Posted by jcun4128 — Thu Feb 19, 2026 3:15 am