В изображениях некоторые часто используемые методы выделения объектов - это бинаризация и размытие
Бинаризация: преобразует массив изображений в 1 и 0. Это делается при преобразовании изображения в 2D-изображение. Можно использовать даже оттенки серого. Это дает вам числовую матрицу изображения. Оттенки серого занимают гораздо меньше места при хранении на диске.
Вот как вы делаете это в Python:
from PIL import Image
%matplotlib inline
#Import an image
image = Image.open("xyz.jpg")
image
Пример изображения:
Теперь конвертируйте в оттенки серого:
im = image.convert('L')
im
вернет вам это изображение:
И матрицу можно увидеть, запустив это:
array(im)
Массив будет выглядеть примерно так:
array([[213, 213, 213, ..., 176, 176, 176],
[213, 213, 213, ..., 176, 176, 176],
[213, 213, 213, ..., 175, 175, 175],
...,
[173, 173, 173, ..., 204, 204, 204],
[173, 173, 173, ..., 205, 205, 204],
[173, 173, 173, ..., 205, 205, 205]], dtype=uint8)
Теперь используйте гистограмму и / или контурную диаграмму, чтобы взглянуть на особенности изображения:
from pylab import *
# create a new figure
figure()
gray()
# show contours with origin upper left corner
contour(im, origin='image')
axis('equal')
axis('off')
figure()
hist(im_array.flatten(), 128)
show()
Это вернет вам сюжет, который выглядит примерно так:
Размытие: алгоритм размытия использует средневзвешенное значение соседних пикселей, чтобы включить цвет окружения в каждый пиксель. Это улучшает контуры лучше и помогает лучше понять особенности и их важность.
И вот как вы делаете это в Python:
from PIL import *
figure()
p = image.convert("L").filter(ImageFilter.GaussianBlur(radius = 2))
p.show()
И размытое изображение:
Итак, вот несколько способов, которыми вы можете заниматься проектированием объектов. А для продвинутых методов вы должны понимать основы Computer Vision и нейронных сетей, а также различные типы фильтров и их значение, а также их математику.