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

Обработка изображений в Python

Rebeca Gonzalez

Data Engineer

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

  • Основы методов обработки изображений
    • Отражение
    • Извлечение и анализ признаков

Милая собака на прогулке в парке

Милая собака, отражённая по горизонтали

Обработка изображений в Python

Изображения как NdArray

Здание в Мадриде

# Loading the image using Matplotlib
madrid_image = plt.imread('/madrid.jpeg')

type(madrid_image)
<class 'numpy.ndarray'>
Обработка изображений в Python

Цвета и NumPy

Изображение винограда и три изображения с цветовыми каналами

Обработка изображений в Python

Цвета и NumPy

# Obtaining the red values of the image
red = image[:, :, 0]

# Obtaining the green values of the image
green = image[:, :, 1]

# Obtaining the blue values of the image
blue = image[:, :, 2]

Каналы изображения, отображённые по отдельности

Обработка изображений в Python

Цвета и NumPy

Каналы изображения молодой женщины, отображённые в оттенках серого

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

Форма массива

Здание в Мадриде

# Accessing the shape of the image
madrid_image.shape
(426, 640, 3)
Обработка изображений в Python

Размер массива

Здание в Мадриде

# Accessing the shape of the image
madrid_image.size
817920
Обработка изображений в Python

Отражение изображений: по вертикали

# Flip the image in up direction
vertically_flipped = np.flipud(madrid_image)

show_image(vertically_flipped, 'Vertically flipped image')

Изображение Мадрида, отражённое по вертикали

Обработка изображений в Python

Отражение изображений: по горизонтали

# Flip the image in left direction
horizontally_flipped = np.fliplr(madrid_image)

show_image(horizontally_flipped, 'Horizontally flipped image')

Изображение Мадрида, отражённое по горизонтали

Обработка изображений в Python

Что такое гистограмма?

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

Обработка изображений в Python

Цветовые гистограммы

Гистограмма RGB-изображения молодой женщины с отдельной гистограммой для каждого цвета

Обработка изображений в Python

Применение гистограмм

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

Изображение после пороговой обработки

Обработка изображений в Python

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

Гистограмма красного канала

# Red color of the image
red = image[:, :, 0]

# Obtain the red histogram 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...