Я пытаюсь заменить цвета в изображении, хранящемся в цифровой матрице, используя numpy.where, а затем отобразить его с помощью opencv.
В этом примере я хочу заменить любой не черный пиксельс белым, в противном случае он остается черным, если я использую 0 вместо изображения в третьем параметре np.where, opencv отображает черный экран, даже если в обоих случаях матрица NumPy в точности совпадает.
import cv2 as cv
import numpy as np
def resize(img, scale):
width = int(img.shape[1]*scale/100)
height = int(img.shape[0]*scale/100)
new_size = (width, height)
return cv.resize(img, new_size, interpolation = cv.INTER_NEAREST)
image = cv.imread('test.png')
image = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
image = np.where(image != 0, 255, image) # work
# image = np.where(image != 0, 255, 0) doesn't work
print(image)
cv.imshow('Image', resize(image, 1000))
while True:
key = cv.waitKey(30)
if key == 27:
exit = True
break
cv.destroyAllWindows()
Есть только несколько строк соответствующего кода, поэтому я думаю, что изображение будет более полезным. Также это тот же результат с или без функции изменения размера