I'm looking for an efficient way to average overlapping pixels which are result of sliding window operation.
To explain my self, imagine we have a 2D matrix (Image) - I. We operate a sliding window operation of window size of 5x5. Each window undergoes a transform, operation and then back.
Now, a certain pixel, I(i, j) appears in many windows (Actually 25).
I want to average all those 25 pixels (Same pixel just the result using different window).
This is for example a step in the BM3D algorithm.
Does anyone knows about efficient way to this in MATLAB?
The structure should be something like:
- Create the patches of the image (im2col can do that).
- Apply the operation in the patches.
- Average the same pixels from all patches it was involved in.