У меня есть вход image , из которого я должен преобразовать все каналы BGR, которые не принадлежат [0,0,0] и [1,1,1], в белый [255,255,255].
Я создал код, который может преобразовывать все каналы, кроме [0,0,0], в белый.
import numpy as np
import cv2
for i in range (1,5):
im = cv2.imread(str(i)+'.png')
im[np.any(im != [0, 0, 0], axis=-1)] = [255,255,255]
cv2.imwrite('a'+str(i)+'.png', im)
Моя цель - преобразовать все каналы, кроме [0,0,0] и[1,1,1] в белый. Для этого я внес следующие изменения в код.
import numpy as np
import cv2
for i in range (1,5):
im = cv2.imread(str(i)+'.png')
im[np.any(im != [0, 0, 0] & im != [1,1,1], axis=-1)] = [255,255,255]
cv2.imwrite('a'+str(i)+'.png', im)
Я получаю эту ошибку:
Traceback (most recent call last):
File "convert.py", line 6, in <module>
im[np.any(im != [0, 0, 0] & im != [1,1,1], axis=-1)] = [255,255,255]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Как преобразовать все изображения вбелый [255,255,255] за исключением [0,0,0] и [1,1,1] пикселей путем изменения вышеуказанного кода?