BIRDS简介 BIRDS (Bi-channel Image Registration and Deep-learning Segmentation for efficient, versatile mapping of mouse brain)是ImageJ的一个插件,由费鹏老师实验室开发,主要用于小鼠脑片配准和细胞计数。BIRDS改进了脑片与图谱的配准算法,并借助Imaris实现了全脑的三维可视化。
BIRDS主要包括downsample、coarse、precise、visual和setSeg五个部分,分别用于图像预处理、图片配准、可视化检查和手动校正以及脑区分割预测。
我关注的主要是前三部分,核心是脑片和图谱的配准,具体流程如下图。
Java GUI 组件 JPanel 面板 1 JPanel northPanel = new JPanel ();
JLabel 标签 1 JLabel urlLabel = new JLabel ("url:" );
JTextField 单行文本框 1 JTextField urlText = new JTextField (20 );
JOptionPane 1 JOptionPane.showMessageDialog(null ,"Pay attention to the cache url!" ,"warning" ,JOptionPane.WARNING_MESSAGE);
JTabbedPane 1 2 3 4 5 6 JTabbedPane centerPanel; JPanel mypanel = new JPanel ();Button mybutton = new Button ("import" );mypanel.add(mybutton); centerPanel.addTab("rawImg" , new ImageIcon (tabImage), mypanel); centerPanel.setSelectedIndex(0 );
1 JButton urlButton = new JButton ("choose" );
JTextArea 多行文本框 1 JTextArea logText = new JTextArea ("Welcome!" );
JFrame 窗 1 2 3 4 5 6 7 8 frame = new JFrame ("BIRDS01" ); frame.add(southJsp, BorderLayout.SOUTH); frame.add(centerPanel, BorderLayout.CENTER); frame.add(northPanel, BorderLayout.NORTH); frame.setSize(500 , 600 ); frame.setVisible(true ); frame.setLocationRelativeTo(null );
组件触发事件 1 2 3 4 5 6 7 8 9 10 11 urlButton.addActionListener(new ActionListener () { @Override public void actionPerformed (ActionEvent e) { System.out.println("o((>ω< ))o" ); } }); centerPanel.addChangeListener(new ChangeListener (){ public void stateChanged (ChangeEvent e) { System.out.println("目前选中的是面板" + centerPanel.getSelectedIndex()); } })
获取ImageJ图片 1 2 3 4 5 import ij.ImageJ;import ij.IJ;new ImageJ (); brainImg = IJ.getImage();
今日总结 不知道是不是因为把显示器搬到实验室的原因,今天工作非常有动力,面对BIRDS源码中超级多的包和类,一点都没有害怕,就奔着一个很小的目标去了:我要搞清楚这个插件是怎么获取到我导入ImageJ中的图片的。今天主要就是学习了BirdsPlugin.java这个文件的代码,对应的是BIRDS插件的GUI,组件布局和触发事件等都在这个文件里面。虽然还不太熟悉java中图像处理的一些方法,但今天学会了看API(要是有具体的使用示例就更好了),也是一个进步!
下一步还是要明确目标:学习脑片与图谱配准的算法!!!BirdsPlugin.java中case2要仔细读一下,我一切换到precise板块,极短的时间内就会弹出配准后的脑片序列,而且也不像提前存好的图片,这个tab触发的逻辑要仔细读一下。不过脑片与图谱配准的核心算法应该是在coarse那部分,明天认真读一下!!!
参考文章