1

我需要创建二进制 tiff 文件(通常是 9 层,但只有第 0 层很重要)

我将结果作为布尔 numpy 2D 数组。但我无法将它们写入 tiff 格式。

带有 PIL 的代码:

res = np.zeros((89262, 208796),dtype=bool)
rois = np.load(endfile)
prediction = np.load(pred)

for i in range(prediction.size):
    if(prediction[i]==1):
        y1, x1, y2, x2 = rois[i].astype(int)
        res[y1:y2,x1:x2] =True

im = PIL.Image.fromarray(res,mode='1')

文件“/path/to/anaconda3/lib/python3.6/site-packages/PIL/Image.py”,第 812 行,在 frombytes s = d.decode(data)

溢出错误:大小不适合 int

使用 pyvips 编写代码

res = np.zeros((89262, 208796),dtype=bool)
rois = np.load(endfile)
prediction = np.load(pred)

for i in range(prediction.size):
    if(prediction[i]==1):
        y1, x1, y2, x2 = rois[i].astype(int)
        res[y1:y2,x1:x2] =True

im = pyvips.Image.new_from_array(res)

文件“/path/to/anaconda3/lib/python3.6/site-packages/pyvips/vimage.py”,第 291 行,在 new_from_array a[x + y * width] = array[y][x]

TypeError:只有大小为 1 的数组可以转换为 Python 标量

PS:这是针对 Camelyon ACDC LungHP 挑战的,这里是确切的说明:

  1. 提交格式应为 TIFF 二进制掩码。只有 L0 级别将用于计算 DICE。

  2. TIFF 必须使用 LZW 格式压缩。

  3. 参与者必须提交一个包含 50 个 TIFF 面具的 zip 文件。每个 TIFF 文件名应命名为 num_mask.tiff,其中 num 是测试图像的编号(见下文)。

https://acdc-lunghp.grand-challenge.org

4

0 回答 0