Like the definition of median filter, I can define “maximum filter” as for a local window
e.g. dst(x,y) = max(3×3 local window pixels)
But I cannot find such a filter in opencv, the closest one is “dilate” function
Then I use the default configuration of “dilate” function, but the result is incorrect
compare to my brute force implementation of the maximum filter.
I found that for 3×3 case, the equivalent dilate configuration is to use a 1×1 rectangular structure element, that is
dilate(src, dst, getStructuringElement(MORPH_RECT, Size(1,1)))
My questions are:
-
It seemed counter-intuitive for me that I thought a structure element is equivalent to a local window. But now the local window’s size is only 1×1 pixel?
-
What if my maximum filter’s local window expands(e.g. 5×5, 7×7)? Is there any relationship between the maximum filter and dilation filter?
An implementation example in Mathematica:
But Dilation[ ] also accepts a structuring kernel: