Back

Find the edges on an image

Sript description

This script finds the edges of an image provided. First, it converts it into grayscale, and then looks for a difference in color. The tolerance is the difference. It saves both the grayscale image and the final one.

Result

Example Example Example

Source Code

from PIL import Image


#im = Image.open("Lenna_(test_image).png").convert("L")
# tolerance = 16 for best results
# lower the tolerance, more lines pass threw.
tolerance = 15

im = Image.open("honestwork.png").convert("L")
pix = im.load()
print (im.size)
im.save('greyscale.png')

for x in range(0, im.size[0]-1):
    for y in range(0, im.size[1]-1):
        if abs(pix[x,y+1] - pix[x,y])>tolerance or abs(pix[x+1,y] - pix[x,y])>tolerance:
            pix[x,y] = 0
        else:
            pix[x,y] = 255

im.save('findEdges.png')