图像预处理过程

图像介绍

DownSample.java文件中主要涉及了以下图像:

  • ourBrainImage:导入ImageJ的原始图像
  • Atlas132labelImage:Allen小鼠脑图谱(冠状面)570×400×660
  • tempInvertOrgImage:Allen小鼠脑平均模板反转
  • tempOrgImage:Allen小鼠脑平均模板
  • annotationImage:注释图谱
    其中Atlas132labelImage、annotationImage、tempOrgImage和tempInvertOrgImage是直接存入cache的。Atlas132labelImage仅仅是用于展示脑图谱,并没有做过多的处理。tempOrgImage和annotationImage均由Allen Brain提供(CCFv3)。

获取CCFv3小鼠全脑平均模板和注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import nrrd # pip install pynrrd
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

AVGT, metaAVGT = nrrd.read('average_template_25.nrrd'); # 25 voxel
ANO, metaANO = nrrd.read('CCFv3_annotation_25.nrrd');

AVGT.shape # (528, 320, 456)
# 存储average template
for i in range(526):
slice = AVGT[i+1,:,:].astype(float)
slice /= np.max(slice)
im = Image.fromarray(np.uint8(plt.cm.gray(slice)*255))
im.save('avgt/avgt_coronal_%d.png'%(i+1))
# 存储annotation
for i in range(526):
slice = ANO[i+1,:,:].astype(float)
slice /= 2000
im = Image.fromarray(np.uint8(plt.cm.gray(slice)*255))
im.save('anno/ano_coronal_%d.png'%(i+1))

今日总结

我之前并没有留意BIRDS插件一开始载入缓存文件夹中的内容,本以为就是把github下载下来的压缩包解压,但今天仔细看了一下代码,才发现中间调用了AddtionalFile.java,用于生成orgInvertImage.tif,该代码又使用了InverTool.java,看来细节还是蛮多的。

我花了很长时间找annotationImage的原始出处,最终发现最有可能的来源是CCFv3,但下载后是nrrd格式,用ImageJ打开是矢状面。我在github、Allen社区以及文章提供的数据中下载到的模板和注释,打开后都是矢状面。晚上回到宿舍以后我还是不甘心,总觉得作者不应该没有提供冠状面的模板,我从nrrd这个文件格式入手,意外看到了一篇博客下面的评论,ImageJ里面可以查看stacks的正交视角!!!我试了一下,果然可以看到冠状面!

接下来的问题就是怎么把全脑冠状面存储为tif格式,昨天没想到好的解决办法,今天早上试了一下Allen提供的API,写了个循环获取冠状面(按顺序命名),然后用ImageJ读取Image sequence并存储为tif格式。(我没有找到BIRDS里面用的voxel是20µm的模板,但感觉问题不大~)

┭┮﹏┭┮ 今天早上喜提周六文献汇报,看论文去了!

参考文章