Я хочу преобразовать изображение с серой шкалой с формой (height,width)
в изображение с 3 каналами с формой (height,width,nchannels)
. Работа выполнена с for-loop
, но должен быть аккуратный способ. Вот фрагмент кода в программе, может кто-нибудь дать подсказку. пожалуйста посоветуй.конвертировать изображение в оттенках серого в 3-канальное изображение
30 if img.shape == (height,width): # if img is grayscale, expand
31 print "convert 1-channel image to ", nchannels, " image."
32 new_img = np.zeros((height,width,nchannels))
33 for ch in range(nchannels):
34 for xx in range(height):
35 for yy in range(width):
36 new_img[xx,yy,ch] = img[xx,yy]
37 img = new_img
В чем вопрос? Если вы просто хотите изменить размеры, это простое изменение формы. Если вы хотите воссоздать цвета, это невозможно без какой-либо модели/предположений. Ваше изображение в оттенках серого не имеет цветовой информации, и все, что вы можете сделать, - это угадывать цвета (которые могут быть простыми и плохими и сложными и не так уж плохими, ограничений нет). – sascha
@sascha Я хочу скопировать изображение с серой шкалой 3 раза, поэтому он согласуется с формой цветного изображения, тогда моя программа может обрабатывать изображения одинаково. Но я хочу иметь лучшую реализацию без петли – Dylan