нарисовать спектр RGB в Python / Numpy - PullRequest
0 голосов
/ 30 октября 2018

Я новичок в Python, и мне нужно нарисовать спектр RGB в виде массива. Для меня ясно, что мне нужно увеличить значения RGB по измерениям, чтобы получить спектр.

import numpy as np
import matplotlib.pyplot as plt 

spectrum = np.zeros([255,255, 3], dtype=np.unit8) #init the array
#fill the array with rgb values to create the spectrum without the use of loops

plt.imshow(spectrum)
plt.axis('off')  # don't show axis
plt.show()

Есть ли возможность (например, метод python или numpy) создать спектр без использования петель?

1 Ответ

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

Не уверен, что этот результат вам нужен, но вы можете сами определить массивы для значений RGB (см. Сравнение HSV-RGB ). Я использовал Подушка , чтобы преобразовать оттенки серого в цвет.

import numpy as np
import matplotlib.pyplot as plt 
from PIL import Image
spectrum = np.zeros([256,256*6, 3], dtype=np.uint8) # init the array
# fill the array with rgb values to create the spectrum without the use of loops
spectrum[:,:,0] = np.concatenate(([255]*256, np.linspace(255,0,256), [0]*256, [0]*256, np.linspace(0,255,256), [255]*256), axis=0)
spectrum[:,:,1] = np.concatenate((np.linspace(0,255,256), [255]*256, [255]*256, np.linspace(255,0,256), [0]*256,[0]*256), axis=0)
spectrum[:,:,2] = np.concatenate(([0]*256, [0]*256,np.linspace(0,255,256),[255]*256, [255]*256, np.linspace(255,0,256)), axis=0)
img = Image.fromarray(spectrum, 'RGB')
img.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...