Python 我应该如何为我的CNN构建这些光栅输入?

Python 我应该如何为我的CNN构建这些光栅输入?,python,python-3.x,keras,python-imaging-library,raster,Python,Python 3.x,Keras,Python Imaging Library,Raster,我下面要制作一个CNN,它可以拍摄图像和数字数据,并进行单一输出。在图像方面,本指南为每个样本提供了四个彩色图像,然后加载、调整大小并将其堆叠在蒙太奇中,如下所示: 导入cv2 输入图像=[] outputImage=np.zeros((64,64,3),dtype=“uint8”) #在输入图像路径上循环 对于ImagePath中的inputImage: #加载输入图像,将其大小调整为32,然后 #更新输入图像的列表 image=cv2.imread(输入图像) 图像=cv2。调整大小(图像,

我下面要制作一个CNN,它可以拍摄图像和数字数据,并进行单一输出。在图像方面,本指南为每个样本提供了四个彩色图像,然后加载、调整大小并将其堆叠在蒙太奇中,如下所示:

导入cv2
输入图像=[]
outputImage=np.zeros((64,64,3),dtype=“uint8”)
#在输入图像路径上循环
对于ImagePath中的inputImage:
#加载输入图像,将其大小调整为32,然后
#更新输入图像的列表
image=cv2.imread(输入图像)
图像=cv2。调整大小(图像,(32,32))
inputImages.append(图像)
#平铺输出图像中的四个输入图像,例如第一个图像
#图像位于右上角,第二个图像位于
#左上角,右下角的第三个图像,
#最后的图像在左下角
输出图像[0:32,0:32]=输入图像[0]
输出图像[0:32,32:64]=输入图像[1]
输出图像[32:64,32:64]=输入图像[2]
输出图像[32:64,0:32]=输入图像[3]
结果是蒙太奇是4个彩色图像并排,如下所示:

我的图像是光栅,因此每个只有一层。我的四幅图像代表了空中拍摄中同一地点的不同索引,因此我希望它们相互叠加,而不是并排排列。 行中:

outputImage = np.zeros((64, 64, 3), dtype="uint8")
我假设维度
3
指原始图像的RGB元素。 为了制作我自己的蒙太奇,我将其简化为np.zero((64,64),dtype=“uint8),但我生成的
输出图像并不是建议的图像蒙太奇,而是一个64X64数字数组

要加载光栅,我正在使用枕头,我的代码当前如下所示:

从PIL导入图像
输入图像=[]
outputImage=np.zeros((64,64),dtype='uint8')
#相关图像
对于相关地图中的inputMap:
mapPath=os.path.sep.join([zonePath,inputMap])
#加载输入图像,将其大小调整为32,然后更新输入图像列表
image=image.open(映射路径)
image=image.resize((32,32))
inputImages.append(图像)
#在输出图像中平铺四个输入图像,以便:
#第一个图像->左上,第二个图像->右上
#第三张图像->左下,第四张图像->右下
输出图像[0:32,0:32]=输入图像[0]
输出图像[32:64,0:32]=输入图像[1]
输出图像[0:32,32:64]=输入图像[2]
输出图像[32:64,32:64]=输入图像[3]
我的
输出图像
如下所示:

数组([[123,125,131,…,0,0,0],
[120, 125, 127, ...,   0,   0,   0],
[123, 127, 126, ...,   0,   0,   0],
...,
[205, 153,  55, ..., 242, 242, 242],
[  4, 241,  28, ..., 242, 242, 242],
[243,90211,…,242,242,242]],dtype=uint8)
而不是图像蒙太奇

我面临两个问题:

  • 我不确定是应该像示例中那样将图像堆叠在一起,还是叠在一起,因为它们是相同区域的不同层

  • 我不知道如何堆叠图像并将其保留为图像,我的方法将它们转换为矩阵

  • 我希望得到一个可用的图像蒙太奇,然后我可以扑通一声进入CNN作为输入