Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение.
Шаги по преобразованию
Преобразование изображения в черно-белое состоит из двух этапов:
- Считайте исходное изображение, как изображение в градациях серого.
- Преобразуйте изображение в градациях серого в двоичное с выбранным порогом.
Если исходное изображение является изображением в оттенках серого, то вы можете прочитать изображение на шаге №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)