Начало работы с пороговой обработкой

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

Rebeca Gonzalez

Data Engineer

Пороговая обработка

Разделение изображения на передний план и фон

Путём перевода в чёрно-белый формат

Для этого каждому пикселю присваивается:

  • 255 (белый), если пиксель $\gt$ порогового значения
  • 0 (чёрный), если пиксель $\lt$ порогового значения

Пороговое изображение мужчины с камерой

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

Пороговая обработка

Простейший метод сегментации изображений

  • Выделение объектов
    • Обнаружение объектов
    • Обнаружение лиц
    • И так далее

Пороговое изображение фишек домино

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

Пороговая обработка

Только для полутоновых изображений

Этапы пороговой обработки на примере фишек домино: исходное RGB-изображение, затем полутоновое и пороговое

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

Применение

# Obtain the optimal threshold value
thresh = 127

# Apply thresholding to the image binary = image > thresh
# Show the original and thresholded show_image(image, 'Original') show_image(binary, 'Thresholded')

Пороговое изображение мужчины с камерой

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

Инвертированная пороговая обработка

# Obtain the optimal threshold value
thresh = 127

# Apply thresholding to the image inverted_binary = image <= thresh
# Show the original and thresholded show_image(image, 'Original') show_image(inverted_binary, 'Inverted thresholded')

Инвертированное пороговое изображение мужчины с камерой

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

Категории

  • Глобальная (на основе гистограммы): подходит для равномерного фона

  • Локальная (адаптивная): для неравномерного освещения фона

Сравнение глобальной и локальной пороговой обработки

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

Другие алгоритмы пороговой обработки

from skimage.filters import try_all_threshold

# Obtain all the resulting images fig, ax = try_all_threshold(image, verbose=False)
# Showing resulting plots show_plot(fig, ax)
Обработка изображений в Python

Другие алгоритмы пороговой обработки

Все методы глобальной пороговой обработки, применённые к полутоновому изображению страницы с текстом

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

Оптимальное пороговое значение

Глобальная

Равномерный фон
# Import the otsu threshold function
from skimage.filters import threshold_otsu

# Obtain the optimal threshold value thresh = threshold_otsu(image)
# Apply thresholding to the image binary_global = image > thresh
Обработка изображений в Python

Оптимальное пороговое значение

Глобальная

# Show the original and binarized image
show_image(image, 'Original')
show_image(binary_global, 'Global thresholding')

Исходное изображение мужчины с камерой, пороговое изображение и гистограмма с красной линией, обозначающей оптимальное пороговое значение

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

Оптимальное пороговое значение

Локальная

Неравномерный фон
# Import the local threshold function
from skimage.filters import threshold_local

# Set the block size to 35 block_size = 35
# Obtain the optimal local thresholding local_thresh = threshold_local(text_image, block_size, offset=10)
# Apply local thresholding and obtain the binary image binary_local = text_image > local_thresh
Обработка изображений в Python

Оптимальное пороговое значение

Локальная

# Show the original and binarized image
show_image(text_image, 'Original')
show_image(binary_local, 'Local thresholding')

Локально обработанное пороговым методом изображение страницы с текстом

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

Давайте потренируемся!

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

Preparing Video For Download...