If you need to do pixel processing just edit the firmware in C. There’s no fast way to do this in python. You can use the python get_pixel() if you want but it will be very slow. It doesn’t even matter if you get a row of pixels at the same time, python can’t deal with the array.
As for getting a subwindow of the image. See the copy method. This can create a crop of the main image. One of the upgrades for the H7 model I am going to do is make this also allow scaling too.
Please keep in mind you are on a microcontroller. Alot of our algorithms only work through careful coding in C to not run out of RAM. We don’t really allow the most general utilization of RAM for images on purpose because when we started the project on the M4 the RAM was too small to hold really any image on the heap. On the M7 this restriction was eased and on the H7 (which is coming soon) the restriction is more or less reduced which is why I will be adding the feature.
Since you are a software programmer our C environment is actually nice and easy to use and edit the firmware to do what you want. It’s not really that hard to add a new method that you can invoke in python and do whatever you want.
There are also plenty of examples in C from our image lib on how to write an algorithm that runs very fast. If you’ve got the camera and a USB cable this is all you need.