Search code examples
image-processingmathematical-morphology

Erosion/Dilation for binary and grayscale images


I am trying to work out the difference between Erosion and Dilation for binary and grayscale images.

As far as I know, this is erosion/dilation for binary images...

Erosion: If every pixel corresponding to an SE index that has 1 is a 1, output a 1. Otherwise 0.

Dilation: If at least one pixel corresponding to an SE index that has 1 is a 1, output a 1. Otherwise 0.

My question is, how does this work for 16-bit (0, 65535) grayscale images?


Solution

  • So what we have to do is to create an structual Element, that could be for example:

    structual Element

    The formula says for dilation says:

    image http://utam.gg.utah.edu/tomo03/03_mid/HTML/img642.png

    and for erosion:

    image http://utam.gg.utah.edu/tomo03/03_mid/HTML/img643.png

    that means with have to take the maximum or minumum of each kernel values in the image and add 10 to it. If we have for example:

    example

    it goes to using dilation:

    result

    How you can see you just look at pixel position x,y take the center and add 10 to it. Then you check the neighbors if the computed value is the maximum. If it is a new maximum the pixel value get replaced, when not the pixel value stays. Hope it is clear for erosion you just take the minimum.