Search code examples
phpimage-processingimagemagicktesseract

Convert image with high quality using imagemagick


I want to remove spots from the image shown below. I have tried using Imagemagick's convert function, but the black spots are not removed. I need a cleaner image with bold date showing.

Need to remove black dot(Please check using zoom)


Solution

  • In Imagemagick, you can remove the spots using connected components and optionally morphology. For example the following removes 2 pixel isolated spots or less. The morphology fills in some of the dark part of the text (it removes or opens the white background). But it may make some of the characters merge (touch):

    Input:

    enter image description here

    convert spots.png \
    -threshold 1% -type bilevel \
    -define connected-components:area-threshold=2 \
    -define connected-components:mean-color=true \
    -connected-components 4 \
    spots_clean.png
    

    enter image description here

    convert spots.png \
    -threshold 1% -type bilevel \
    -define connected-components:area-threshold=2 \
    -define connected-components:mean-color=true \
    -connected-components 4 \
    -morphology open diamond:1 \
    spots_clean_o1.png
    

    enter image description here

    convert spots.png \
    -threshold 1% -type bilevel \
    -define connected-components:area-threshold=2 \
    -define connected-components:mean-color=true \
    -connected-components 4 \
    -morphology open octagon:1 \
    spots_clean_o2.png
    

    enter image description here