Преобразовать все значения BGR в определенном диапазоне в белый (255 255 255) - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть входное изображение PNG, из которого я хочу преобразовать все пиксели, принадлежащие определенному диапазону, начиная с (2,2,2) и заканчивая (255,255,255), в белый (255,255,255)

im = cv2.imread('3.png')  # I am reading the image

lower_range = np.array([2,2,2]). # I specific the lower range
upper_range = np.array([255,255,255]) # I specify the upper range

im[np.where((im == [0,0,255]).all(axis = 2))] = [255,255,255]  # converts all red pixels to white
cv2.imwrite('out.png', im)

Мой вопрос, как я могу изменить im[np.where((im == [0,0,255]).all(axis = 2))] = [255,255,255]. Таким образом, он охватывает диапазон цветов, упомянутых в строках 2 и 3, и преобразует их все в белый.

1 Ответ

1 голос
/ 13 апреля 2019

Имеется cv2.inRange , который дает маску, которую можно использовать для изменения цвета по вашему желанию.

mask1 = cv2.inRange(im, lower_range, upper_range)
im[np.where(mask)] = [255,255,255]

В примечании стороны, ваш диапазон цветов довольно большой (почти охватывает все).

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