Как преобразовать изображение в черно-белое(двоичное) в Python

Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение.

Шаги по преобразованию

Преобразование изображения в черно-белое состоит из двух этапов:

  1. Считайте исходное изображение, как изображение в градациях серого.
  2. Преобразуйте изображение в градациях серого в двоичное с выбранным порогом.

Если исходное изображение является изображением в оттенках серого, то вы можете прочитать изображение на шаге №1, как исходное и продолжить с шага №2. Следующий пример иллюстрирует работу порога при преобразовании серой шкалы в двоичную или черно-белую.

Преобразование изображения в двоичное или черно-белое

Пример 1

В следующем примере мы прочитаем следующее цветное изображение, используя cv2.imread() в качестве изображения в градациях серого, а затем применим функцию к массиву изображений.

Чтение цветного изображения

import cv2

#read image
img_grey = cv2.imread('D:/original.png', cv2.IMREAD_GRAYSCALE)

# define a threshold, 128 is the middle of black and white in grey scale
thresh = 128

# threshold the image
img_binary = cv2.threshold(img_grey, thresh, 255, cv2.THRESH_BINARY)[1]

#save image
cv2.imwrite('D:/black-and-white.png',img_binary)

Выходной файл black-and-white.png выглядит так, как показано ниже.

Выходное двоичное изображение

Пример 2

В следующем примере мы прочитаем изображение в градациях серого с помощью cv2.imread(), а затем применим функцию к массиву изображений. Нет никакой разницы в преобразовании цветного изображения в черно-белое и в градациях серого в черно-белое.

import cv2

#read image as grey scale
img_grey = cv2.imread('D:/greyscale.png', cv2.IMREAD_GRAYSCALE)

# define a threshold, 128 is the middle of black and white in grey scale
thresh = 128

# threshold the image
img_binary = cv2.threshold(img_grey, thresh, 255, cv2.THRESH_BINARY)[1]

#save image
cv2.imwrite('D:/black-and-white.png',img_binary)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *