На зображеннях деякі часто використовувані методи вилучення функцій - це бінаризація та розмивання
Бінаризація: перетворює масив зображень у 1s та 0s. Це робиться під час перетворення зображення на 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()
А розмитим зображенням є:
Отож, це декілька способів, за допомогою яких ви можете зайняти інженерну роботу. А для прогресивних методів ви повинні зрозуміти основи комп’ютерного бачення та нейронних мереж, а також різні типи фільтрів та їх значення та математику, що стоїть за ними.