OpenCV Черный экран после np.where на изображении - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь заменить цвета в изображении, хранящемся в цифровой матрице, используя 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()

Есть только несколько строк соответствующего кода, поэтому я думаю, что изображение будет более полезным. Также это тот же результат с или без функции изменения размера

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