NumPy для зображень

Обробка зображень у Python

Rebeca Gonzalez

Data Engineer

NumPy для зображень

  • Основи обробки зображень
    • Віддзеркалення
    • Виділення та аналіз ознак

Милий пес гуляє в парку

Милий пес, віддзеркалений горизонтально

Обробка зображень у Python

Зображення як NdArray

Будівля в Мадриді

# Завантаження зображення за допомогою Matplotlib
madrid_image = plt.imread('/madrid.jpeg')

type(madrid_image)
<class 'numpy.ndarray'>
Обробка зображень у Python

Кольори з NumPy

Грона винограду над 3 зображеннями з окремими каналами кольору

Обробка зображень у Python

Кольори з NumPy

# Отримання червоних значень зображення
red = image[:, :, 0]

# Отримання зелених значень зображення
green = image[:, :, 1]

# Отримання синіх значень зображення
blue = image[:, :, 2]

Канали зображення, показані окремо

Обробка зображень у Python

Кольори з NumPy

Канали зображення молодої жінки, показані окремо у відтінках сірого

plt.imshow(red, cmap="gray")    
plt.title('Red')
plt.axis('off')
plt.show()
Обробка зображень у Python

Форми

Будівля в Мадриді

# Отримання форми зображення
madrid_image.shape
(426, 640, 3)
Обробка зображень у Python

Розміри

Будівля в Мадриді

# Отримання розміру зображення
madrid_image.size
817920
Обробка зображень у Python

Віддзеркалення зображень: вертикальне

# Віддзеркалити зображення вгору-вниз
vertically_flipped = np.flipud(madrid_image)

show_image(vertically_flipped, 'Vertically flipped image')

Зображення Мадрида, віддзеркалене вертикально

Обробка зображень у Python

Віддзеркалення зображень: горизонтальне

# Віддзеркалити зображення ліворуч-праворуч
horizontally_flipped = np.fliplr(madrid_image)

show_image(horizontally_flipped, 'Horizontally flipped image')

Зображення Мадрида, віддзеркалене горизонтально

Обробка зображень у Python

Що таке гістограма?

Гістограма темного зображення Гістограма світлого зображення

Обробка зображень у Python

Кольорові гістограми

Гістограма RGB-зображення молодої жінки: окремо для кожного кольору

Обробка зображень у Python

Застосування гістограм

  • Аналіз
  • Порогова обробка
  • Яскравість і контраст
  • Вирівнювання зображення

Порогове зображення

Обробка зображень у Python

Гістограми в Matplotlib

Гістограма червоного каналу

# Червоний канал зображення
red = image[:, :, 0]

# Отримати гістограму червоного каналу plt.hist(red.ravel(), bins=256)
Обробка зображень у Python

Візуалізація гістограм у Matplotlib

blue = image[:, :, 2]

plt.hist(blue.ravel(), bins=256)
plt.title('Blue Histogram')
plt.show()

Гістограма синього каналу зображення

Обробка зображень у Python

Давайте потренуємось!

Обробка зображень у Python

Preparing Video For Download...