【发布时间】:2018-02-07 13:27:20
【问题描述】:
我正在使用 numpy 从我的 16 位 tiff 图像 (13777*16004) 创建 (224*224) 的图块。我能够沿行和列裁剪/切片为 224*224 的相等图块。我在尝试创建移动一半瓷砖大小的新瓷砖时遇到了问题......例如:我想要实现的粗略算法
(1:224, 1:224)
(1:224, 112:336)
(, 224:448)
目标是保持平铺尺寸(224*224),同时移动平铺尺寸的一半以获得更多图像平铺...
为执行任务而编写的代码片段
row_x = img.shape[0]
column_y = img.shape[1]
tile_size_x = 224
tile_size_y = 224
range_x = mpz(ceil(row_x/tile_size_x))
range_y = mpz(ceil(column_y/tile_size_y))
for x in range(range_x, row_x):
for y in range(range_y, column_y):
x0 = x * tile_size_x
x1 = int(x0/2) + tile_size_x
y0 = y * tile_size_y
y1 = int(y0/2) + tile_size_y
z = img[x0:x1, y0:y1]
print (z.shape,z.dtype)
我总是得到错误的结果,谁能帮忙???
【问题讨论】:
-
我本可以发誓这是一个骗子(使用
as_strided有一个很好的答案),但我一辈子都找不到它。 @Divakar,你通常是as_strided巫师,也许你还记得?