В ответе указано, что np.all(image<100, axis=2)
используется для выбора пикселей, где R, G и B все ниже 100, что в основном является цветовым разделением.Лично для этого мне нравится использовать цветовое пространство HSV.
Результат:
Примечание: если вы хотите улучшитьзелеными буквами, для этого лучше всего создать отдельную маску и настроить значения hsv для зеленого.
Код:
import numpy as np
import cv2
# load image
img = cv2.imread("img.jpg")
# Convert BGR to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# define range of black color in HSV
lower_val = np.array([0,0,0])
upper_val = np.array([179,255,127])
# Threshold the HSV image to get only black colors
mask = cv2.inRange(hsv, lower_val, upper_val)
# invert mask to get black symbols on white background
mask_inv = cv2.bitwise_not(mask)
# display image
cv2.imshow("Mask", mask_inv)
cv2.imshow("Img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()