是否可以通过添加2个仅包含零的通道来使1通道的图像变为3通道的图像?
这是我要通过添加仅由零组成的2个额外通道将图像转换为3个通道图像的文件
images.shape
(100, 120, 120, 1)
这是我现在用来在1个通道中导入图像的代码
def loadImages():
dirname = '/c/disk/img_t1/'
x_orig = np.zeros((100, 120, 120), dtype=np.float32)
for f in range(x_orig.shape[0]):
img = Image.open(dirname + 'img_t1_%05d.tiff' % (f))
img = np.array(img)
x_orig[f] = img
path = '/c/labels.csv'
labels = pd.read_csv(path, usecols=["proportional", "category"],
sep=";" )
y_orig = np.array(labels['category'])
return x_orig, y_orig
x, y = loadImages()
plt.imshow(x[3])
这就是图像的样子 enter image description here
如果使用相同的代码,我只需从包PIL中添加.convert('RGB)即可添加其他2个通道
def loadImages():
dirname = '/c/disk/img_t1/'
x_orig = np.zeros((100, 120, 120,3), dtype=np.float32)
for f in range(x_orig.shape[0]):
img = Image.open(dirname + 'img_t1_%05d.tiff' % (f)).convert('RGB')
img = np.array(img)
x_orig[f] = img
path = '/c/labels.csv'
labels = pd.read_csv(path, usecols=["proportional", "category"],
sep=";" )
y_orig = np.array(labels['category'])
return x_orig, y_orig
x, y = loadImages()
plt.imshow(x[3])
图片看起来像这样
所以我想要这样的东西
images.shape
(100, 120, 120, 3)
答案 0 :(得分:0)
我想您正在尝试进行一些机器学习方面的培训。
我认为您的文件可能是单通道32位浮点TIFF,尽管您实际上已经共享了PNG文件。
我认为问题在于PIL / Pillow不支持RGB(3通道)浮动-请参见documentation。
我不知道您接下来打算如何处理数据,因此我不知道您需要什么图像处理功能。但我怀疑您可能需要移至其他库-OpenCV或Wand或pyvips或...