我用Keras训练了一个CNN来分割特定的模式。它真的很好用,但现在我必须开始“制作阶段”,所以我的CNN必须分割数以千计的图像。在
因此,对于CNN必须分割的给定图像,对于这个图像中的每个像素,我必须在像素周围切割一个补丁,并将所有补丁提供给CNN。到目前为止,我使用的解决方案是:
WindowSize = 23 #patch size
ws2 = WindowSize / 2
image_data = ndimage.imread(image_file).astype(float)
dimensions = image_data.shape
SizeX = dimensions[1]
SizeY = dimensions[0]
imtest = np.ndarray(shape=(SizeX-2*ws2, 1, WindowSize, WindowSize), dtype=np.float32)
for y in range(ws2,SizeY-ws2):
for x in range(ws2,SizeX-ws2):
imtest[x-ws2,0] = image_data[y-ws2:y+ws2+1, x-ws2:x+ws2+1]
所以我一行一行地工作,就像这样我不会丢失补丁的坐标。但是这个解决方案很慢。有没有更快的方法?
我也听说过Keras中的Generator,但是用fit_Generator函数训练生成器似乎很有用,但不是在图像上测试然后分割它,因为它不保留面片坐标。在
相关问题 更多 >
编程相关推荐