как сделать снимок серого цвета и раскрасить его красным - PullRequest
0 голосов
/ 02 октября 2018

У меня есть 2D-изображение серой шкалы, загруженное с помощью imread.0

Я хочу его раскрасить.

Каков наилучший способ использовать numpy / skimage / python для достижения этой цели?

Ответы [ 3 ]

0 голосов
/ 02 октября 2018

Это будет немного зависеть от точного формата вашего ввода.Но основная процедура должна быть такой простой, как:

>>> import numpy as np
>>> from skimage import data, io
>>> 
# an example grey scale image
>>> grey = data.coins()
# a helper for convenient channel (RGB) picking
>>> RGB = np.array((*"RGB",))
# the actual coloring can be written as an outer product
>>> red = np.multiply.outer(grey, RGB=='R')
# save for posterity
>>> io.imsave('red.png', red)
0 голосов
/ 02 октября 2018
import matplotlib.pyplot as plt
from skimage import color
from skimage import img_as_float
from PIL import Image

jpgfile = Image.open("pp.jpg")

grayscale_image = img_as_float(jpgfile)
image = color.gray2rgb(grayscale_image)

red_multiplier = [1, 0, 0]

fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(8, 4),
                               sharex=True, sharey=True)
ax1.imshow(red_multiplier * image)

plt.show()
0 голосов
/ 02 октября 2018

если это одноканальное изображение, вы можете преобразовать его в «красное масштабное» изображение, выполнив что-то вроде этого:

zero_channel = np.zeros_like(greyscale_array)
redscale = np.stack([greyscale_array, zero_channel, zero_channel], axis=2)

без полного понимания формы вашего массива, хотя трудно ответить,

...