Чтение PIL, похоже, у него есть несколько функций, которые будут полезны для реализации фильтра canny.Морфологические функции эрозии / расширения, по-видимому, недоступны.
Это должно помочь вам начать реализацию собственного фильтра canny.Он выполняет фильтр sobel в вертикальном и горизонтальном направлениях.Это дает вам примерно на полпути через алгоритм.Оттуда вам нужно будет итерировать (x, y) по (ширине, высоте) и подавлять не максимальные ребра.В Википедии есть хорошее объяснение http://en.wikipedia.org/wiki/Canny_edge_detector
import ImageFilter
filtHorizontal = [1, 0, -1, 2, 0, -2, 1, 0, -1]
filtVertical = [1, 2, 1, 0, 0, 0, -1, -2, -1]
im = im.filter(ImageFilter.BLUR)
edgeHorizontal = im.filter((3,3), filtHorizontal)
edgeVertical = im.filter((3,3), filtVertical)
Является ли PIL предпочтительным инструментарием для обработки изображений для python?похоже, он мог бы использовать некоторые вклады