Do you have GaussianBlur implementation in omv/imglib?
Yes, use the image — machine vision — MicroPython 1.15 documentation.
Please ask questions that you can’t google…
As I mentioned in other topic, I was exploring it the native implementation https://github.com/openmv/openmv/blob/master/src/omv/imlib
I will go through the documentation & implementation to understand more. It seems it is micro python interface. I am trying to understand how this python code is mapping to native implementation in imlib.
I would be very helpful, if you could provide some information or internals of how this python code is mapping to native implementation & what to look for…
Ah, yes, the way this works is that:
There’s a python wrapper method in the py_image.c file which has all the image methods:
That generally parses arguments from python in a flexible way. Then it will call the C method in the imlib file:
Note, after partnering with Arduino we’ve been going through our code and updating it from hobbyist level work to hardened pro code. Over the years we’ve gotten a lot better and writing high performance code that is fast and uses SIMD like features on the Cortex-M4/7 (and soon the M55).
Morph was optimized slightly by a paid performance optimizer. However, there’s quite a bit of speed that we left on the table for the sake of code space.
We’re focused on improving the performance of multi-media parts of the code right now but in the future we will work on making kernels much faster.
For example, we could automatically make the method detect if the kernel is vertically and horizontally separateable and then reduce complexity from O(N^2) to (2N). Also, we could hardcode and unroll known frequently used kernel sizes.