BIRDS插件代码学习【06】
今日计划
- 准备和刘越老师讨论的PPT,主要整理计算建模的思路以及难点
- 提取单张脑片的脑区轮廓
- BrainPy环境搭建
- 整理计算神经科学领域比较有名的实验室和科学家
提取脑区轮廓
1 | package I.plugin; |
细胞计数
没想到BIRDS里细胞计数是通过调用Imaris的方法实现的,看来还是要学一下这个软件的用法🥲运行Imaris前记得先运行license server.bat
~
.tif → .ims可以通过ImarisFileConverter.exe
实现,Imaris默认安装在C盘。
没有找到很方便的API,看代码似乎是要现在Imaris里面操作完成之后,Java再获取对应的数据,这好像和我想要达到的效果不一样。
👻不想动脑子,怎么办!!!
流程测试
⭐脑片与标准脑模板的尺寸要大致相同,为了不过度损失脑片分辨率,此处对标准脑模板进行上采样
⭐elastix.exe
配准的参数使用para-Standard_bspline.txt
、para-Standard_affine.txt
和para-Standard_rigid.txt
(去掉了对图片维度的限制)效果比较好
👻不知道为什么提取的脑区轮廓有很明显的锯齿,难道是因为我把注释图片分辨率调高了?不过问题不大~
👻由于原始脑片本身边缘有破损,因此与轮廓边缘处会出现明显的变形
- 将标准脑模板和注释图片的分辨率提高至与脑片匹配的程度(尽量不损失原始脑片的图像分辨率)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16from PIL import Image
Image.MAX_IMAGE_PIXELS = None
raw = Image.open(r"D:/Desktop/elastix-5.1.0-win64/input/result1.tif")
img = Image.open(r"D:/Desktop/elastix-5.1.0-win64/out_anno/annotationImage0270.tif")
# img = Image.open(r"D:/Desktop/elastix-5.1.0-win64/out_temp/tempImage0270.tif")
target_width = raw.size[0]
scale = round(target_width/img.size[0],1)
width = int(img.size[0]*scale)
height = int(img.size[1]*scale)
out = img.resize((width, height))
type = img.format
out.save('D:/Desktop/elastix-5.1.0-win64/out_anno/annotationImage0270-1.tif',type)
# out.save('D:/Desktop/elastix-5.1.0-win64/out_temp/tempImage0270-1.tif',type) - 脑片与图谱配准
1
2
3elastix -f input/result1.tif -m out_temp/tempImage0270-1.tif -out output -p input/para-Standard_rigid.txt -p input/para-Standard_affine.txt -p input/para-Standard_bspline_2.txt
transformix -in out_anno/annotationImage0270-1.tif -out result -tp output/TransformParameters.2.txt
参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stray Birds!
评论