Как отобразить определенное значение цвета в серой шкале по краю изображения

#python #image #matplotlib #colors

#питон #изображение #matplotlib #Цвет

Вопрос:

У меня есть изображение ниже, и я хочу нанести определенное единичное значение на определенную строку. В приведенном ниже случае я использовал красный цвет для упомянутой линии просто для визуализации линии.

Значения нормализуются путем вычитания их из среднего значения и деления на стандартное отклонение. Следовательно, значения не находятся в диапазоне от 0 до 1, а также RGB. Это значение может быть 0.1, 2 или любое другое значение. Я хочу просто записать это конкретное значение в строке, а затем сохранить его как файл mat.

введите описание изображения здесь

 import matplotlib.pyplot as plt

pixels = 600
my_dpi = 100

one_coord = [[-150,-200],[300,-200],[300,0],[150,200],[-150,200]]

fig = plt.figure(figsize=( pixels/my_dpi,  pixels/my_dpi),facecolor='k', dpi=my_dpi)  
plt.axes([0,0,1,1])
rectangle = plt.Rectangle((-300, -300), 600, 600, fc='k')
plt.gca().add_patch(rectangle)
plt.plot([one_coord[0][0], one_coord[-1][0]], [one_coord[0][1], one_coord[-1][1]], color='r', lw=5)
plt.axis('off')
plt.axis([-300,300,-300,300])
plt.imshow(fig)
 

Комментарии:

1. Вы можете просто использовать color='0.3' (число между кавычками, а от 0 до 1 интерпретируется как значение серого), указав цвета в matplotlib

2. Значения не находятся между 0 и 1.

3. Я хочу сохранить изображение в виде файла mat и использовать его в качестве входных данных для моей сети cnn.

4. Если у вас есть значения rgb от 0 до 255, вы также можете использовать plt.plot(...., color=(r/255, g/255, b/255)) . При сохранении изображения color='0.3' будет значение rgb (77,77,77) или серое значение 77 (или что-то еще, в зависимости от формата).

5. Вы спрашиваете, как преобразовать диапазон значений с плавающей точкой в значение в оттенках серого? … нормализовать его? value / (max-min) ??