Схема изображения с использованием python/PIL

У меня есть цветная фотография яблока, как я могу показать только ее контур (внутри белый, черный фон) с помощью python/PIL?

Ответы

Ответ 1

Что-то вроде этого должно работать.

from PIL import Image, ImageFilter

image = Image.open('your_image.png')
image = image.filter(ImageFilter.FIND_EDGES)
image.save('new_name.png') 

Если это не дает вам результат, который вы ищете, то вы пытаетесь реализовать либо обнаружение границ Prewitt, либо обнаружение края Sobel, либо обнаружение края Canny с использованием PIL и Python, а также другие библиотеки см. в разделе question и следующий пример.

Если вы пытаетесь выполнить обнаружение/анализ частиц, а не только обнаружение края, вы можете попробовать использовать py4ij для вызова ImageJ метод, который вы связываете, чтобы вы ожидали того же результата или попробуйте другую библиотеку Python для анализа частиц EMAN поочередно, вы можете написать алгоритм обнаружения частиц, используя PIL, SciPy и NumPy.

Ответ 2

Если ваш объект и фон имеют довольно хороший контраст

from PIL import Image
image = Image.open(your_image_file)
mask=image.convert("L")
th=150 # the value has to be adjusted for an image of interest 
mask = mask.point(lambda i: i < th and 255)
mask.save(file_where_to_save_result)

если более высокий контраст находится в одном (из трех цветов), вы можете разбить изображение на полосы вместо того, чтобы преобразовать его в шкалу серого.

Если изображение или фон довольно сложны, потребуется более сложная обработка