Я пытаюсь перебрать изображение только с черными и белыми пикселями.Для каждого черного пикселя я хочу уменьшить оценку, в то время как для каждого белого пикселя я хотел бы увеличить оценку.Однако после тестирования следующего кода я получаю эту ошибку:
ValueError: The truth value of an array with more than one element is ambiguous.
Это как-то связано с оператором img[i, j]
.Как может быть несколько пикселей в этом массиве?Я специально не называю один пиксель с помощью img[i,j]
?Кто-нибудь знает, как я мог это исправить, или есть другой способ работы для доступа к одному конкретному пикселю?
def score(img):
score = 0
height, width, _ = img.shape
for i in range(height):
for j in range(width):
if img[i, j] == [255,255,255]:
score = score + 1
else:
score = score - 1
print(score)
Изображение было прочитано с использованием библиотеки openCV.Исходное изображение затем фильтруется для определенного цвета, с помощью которого создается маска.Эта маска имеет только черные и белые пиксели, как упоминалось ранее.
img = cv2.imread("images/test.jpg")
mask = cv2.inRange(img, lower_bound, upper_bound)