Заменить все цвета фотографии, кроме существующих черно-белых пикселей PYTHON - PullRequest
0 голосов
/ 16 марта 2019

Я новичок в python, и я хотел бы, чтобы я изменил все пиксели фотографии на белый, кроме тех белых или черных, которые уже были на фотографии.Я пытался использовать PIL, но я не мог его найти.Спасибо!

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Мне бы хотелось, чтобы все пиксели фотографии были изменены на белый, кроме тех белых или черных, которые уже были на фотографии.

Итак, вы хотите изменить все пиксели на белый, кроме черного, верно? Если это так, то работайте ниже (примечание: ожидается, что на вашем компьютере установлена ​​cv2 lib)

import cv2
import numpy as np

img = cv2.imread('my_img.jpeg')
img[img != 0] = 255 # change everything to white where pixel is not black
cv2.imwrite('my_img2.jpeg', img)
1 голос
/ 16 марта 2019

Если у вас есть доступ к matplotlib и вы хотите его использовать:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# read the image pixels and saves them as a numpy array
image = mpimg.imread('<your image>')

# see original image (just for testing)
plt.imshow(image)
plt.show()

# loop through all pixels, and replace those that are not strict white or black with white
for x in range(image.shape[0]):
    for y in range(image.shape[1]):
        if (image[x,y]!=0).all() and (image[x,y]!=1).all():
            image[x,y] = [1,1,1]  

# see modified image (to make sure this is what you need)
plt.imshow(image)
plt.show()

# save image
mpimg.imsave('<new name>',image)

Возможно, вы можете векторизовать это, но я считаю, что это более читабельно, зависит от ваших требований к производительности. Также убедитесь, что ввод в формате [0,1]. Если он находится в [0,255], измените вышеуказанные значения 1 с 255 с.

Изменить: это решение работает для RGB, без альфа. Если у вас есть альфа, вам может потребоваться изменить его в зависимости от ваших требований.

Надеюсь, это поможет.

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