1.简言之

3Dslicer基于NA-MIC工具包开发而来,主要使用的编程语言是C++。其使用的NA-MIC工具包包括VTK、ITK、CTK、Cmake、Qt、Python。
  • NA-MIC, the National Alliance for Medical Imaging Computing.
    NA-MIC is a multi-institutional, interdisciplinary team of computer scientists, software engineers, and medical investigators who develop computational tools for the analysis and visualization of medical image data. The purpose of the Center is to provide the infrastructure and environment for the development of computational algorithms and open-source technologies, and then oversee the training and dissemination of these tools to the medical research community.
为了保证程序的稳定性,源代码在不同配置平台上的编译与测试结果见如下网址(基于Web的软件质量控制系统CDash):http://slicer.cdash.org/index.php?project=Slicer4

作为开发人员可以提交相应的话题到开放的邮件列表和基于Web的Bug-Tracker的MainsBT上:
上面也提供了我们3Dslicer未来的开发路线图以及经常会碰到的问题。此外,常用的程序源代码使用的API也有提供(C++类函数),便于查看:http://apidocs.slicer.org/master/index.html
3Dslicer包含了一个瘦应用程序核心和一些提供特定的功能的模块。核心实现了用户界面IO与可视化、新模块开发的接口。
3Dslicer支持多种类型的模块:CLI,loadable module,scripted module和编辑工具。他们有类似的外观和操作方式感觉。同一类型的模块旺旺只有输入输出参数的区别。

2.准备工作

2.1 工具准备

无论是研究Slicer的功能还是进行功能开发,最关键的就是开发环境的搭建问题。搭建Slicer的开发环境的目的是能够对Slicer的源码以及使用到的库进行修改,并实现单步调试功能。需要的工具Cmake、SVN、Git、Visual Studio、Qt等。
  • CMake:解决跨平台编译问题。Slicer使用到了多种编程语言,其编译过程就要使用多种编译器。CMake是一个快平台的软件构建工具,可以用简单的语句描述所有平台构建过程,可以生成Makefile或者project文件,能测试编译器情况,这一点和UNIX写的automake很像。更详细一点,程序的编译信息被写入“CMakeLists.txt”中。CMake通过这些文件生成相应的makefile(UNIX/Linux)和Project(Windows)。
  • SVN:Subversion。Subversion将数据放置在一个档案库repository中,记住文件的每一次变动。可以将代码的变动明显的表示出来,这样就可以方便地恢复到之前的某个版本。Slicer的源代码变采用了SVN进行代码管理,编译Slicer用到的很多方法库也是用SVN进行管理。
  • Git:开源的分布式版本控制系统。编译Slicer的过程中使用到的库很大一部分也是使用Git作为版本控制,CTK。Slicer并没有搭建自己的Git服务器,源代码是在GitHub的服务器上进行托管。
  • Visual Studio:看到这里,如果连VS还不懂,赶快转行吧。该工具需要提示的只有一点,在使用2008版本时,最好安装SP1补丁,避免Slicer编译过程中可能出现的错误。
  • Qt:跨平台C++图形用户界面应用程序开发框架,易于拓展,允许组件编程。编译Slicer可以使用编译完成的Qt版本,也可以自行编译,Slicer对Qt的版本要求十分严格,更推荐自行编译Qt。
如何利用VS2010编译Qt,需要参考该篇博客:http://blog.csdn.net/aslucky/article/details/6299319

2.2 Developer Community

Slicer的开发研究是一个漫长有挑战性的工作,需要进行Developer-Developer、Developer-Official之间的交流。加入Developer Community需要完成一下环节:
  • 注册Slicer开发者论坛 3DSlicer Forum:https://discourse.slicer.org/ 这里需要注册邮箱和用户名,比如scx16@mails.tsinghua.edu.cn + shenziheng.在论坛里,可以查找新版本的发布以及Bug Fixed。
  • 注册GitHub,这个我早年注册过了,对于新人我建议注册信息尽量一致吧,避免绕来绕去麻烦。比如:scx16@mails.tsinghua.edu.cn + ZihengTsingHua。也需要安装GitHub客户端。安装GitHub客户端是以图形化的操作方式来实现Git的基本功能,辅以命令行方式,方便不许输Git版本控制软件的开发者。
  • 注册NA-MIC的Mantis:https://issues.slicer.org/signup_page.php 这个上面提过了的,Bug追踪系统,Slicer使用这个系统来进行规范化的缺陷追踪。比如:scx16@mails.tsinghua.edu.cn + shenchunxu。
哎!三个注册用了三个名字,这都是之前年少无知+经验不足啊~~~

2.3 Creating Copy Code in Local Computer

获取Slicer最新源代码。因为Slicer的源代码同时使用SVN和Git管理,因此两种方法都可以获得源代码。
1. SVN方法:
cd myProject
svn co http://svn.slicer.org/Slicer4/trunk Slicer4 
等下载完毕,源代码将会保存在c:/myProject/Slicer4
Notice:co=checkout,作用是将文件下载到本地目录;
2. Git方法:打开git-bash,键入类似命令:
cd myProject
git clone git://github.com/Slicer/Slicer.git

Notice:clone命令的功能和SVN命令co相同,做影视将文件下载到本地目录;Git中更新代码的命令为pull,而SVN中使用updata命令;

3DSlicer5:开发者必晓ABC相关推荐

  1. Android 开发者必知的开发资源

    英文原文:Bongzimo  翻译: ImportNew-黄小非 译文链接:http://www.importnew.com/3988.html Android 开发者必知的开发资源 随着Androi ...

  2. 3月18日云栖精选夜读 | 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起!...

    [点击订阅云栖夜读周刊] 开发者分会场致力于帮助开发者学习了解阿里云最新技术,为开发者设计全方位的技术成长与进阶之路. 热点热议 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起! 作者 ...

  3. 3月18日云栖精选夜读 | 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起!... 1

    [点击订阅云栖夜读周刊] 开发者分会场致力于帮助开发者学习了解阿里云最新技术,为开发者设计全方位的技术成长与进阶之路. 热点热议 开发者必看!探秘阿里云Hi购季开发者分会场:海量学习资源0元起! 作者 ...

  4. 8月22日云栖精选夜读 | Java开发者必看!机器学习开发库精选!

    本文将介绍一些目前流行的.强大的基于Java的机器学习库. 热点热议 Java开发者必看!机器学习开发库精选! 作者:[方向] 学界 | 不!机器学习才不只是统计学的美化! 作者:技术小能手  发表在 ...

  5. java面试题大合集(开发者必看三)

    前言 本文来自百度网络的一篇文章,由于没有答案,现在整理了一些比较好的回答和好的博客,可以自己扩展思路,如果大家有一下面试题的更好的答案,欢迎在评论区留言.以上全部来自网络!此外,我的微信公众号将每日 ...

  6. java面试题大合集(开发者必看)

    ###前言 本文来自百度网络的一篇文章,由于没有答案,现在整理了一些比较好的回答和好的博客,可以自己扩展思路,如果大家有一下面试题的更好的答案,欢迎在评论区留言.以上全部来自网络!此外,我的微信公众号 ...

  7. 开发者必看!Windows Server 2012全攻略

    转载自品略网:http://www.pinlue.com/article/2020/03/0904/2410000394727.html 品牌:微软操作系统1Windows Server 2012概论 ...

  8. 盘点iOS开发者必看的105个全球最佳博客

    如果你正在寻找见解深刻,并富有教育意义的iOS开发博客,那就找对地方了.下面列出了质量最好且最为活跃的105个线上博客.如你所知,互联网上高质量的iOS博客并不缺乏,但我决定再过滤一下,去芜存菁,找出 ...

  9. .Net开发者必知的技术类RSS订阅指南

    作为一个.Net开发者,在如今这个信息大爆炸时代,网络上.net开发方面的信息浩如烟海(获取信息的渠道很多,比如各种 APP.公众号.聚合信息网站.博客园.InfoQ等等),如何用有限的时间来获取并消 ...

最新文章

  1. Linux串口原理与编程
  2. R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战
  3. 带你学习JQuery:事件冒泡和阻止默认行为
  4. java中jsp页面foreach遍历输出的使用
  5. python进程共享内存_Python进程间通信之共享内存
  6. Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序(三)
  7. linux添加和增大交换分区(swap)的方法
  8. 去中心化 去区块链_基于区块链的去中心化应用的四种架构模式候选
  9. matlab两张图片合成一张_二次曝光合成手机照片剪影照并不难,这样用snapseed轻松实现...
  10. 【牛腩】FreeTextBox
  11. 统计学和计算机类对比,统计学与计算机的关系
  12. 云服务器网卡mac地址修改,服务器mac地址修改教程
  13. 【更新】VMware虚拟机黑群晖7.1.1 RC(懒人包)
  14. 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾
  15. JavaScript网页特效编程百宝箱pdf
  16. 计算机c盘如何腾出空间,WIN8的C盘太大怎么清理腾出空间呢
  17. 【Android界面实现】Starting an Activity(Activity生命周期金字塔模型)
  18. 非常专业的图形图像处理工具-Adobe Illustrator CS5提供下载
  19. ImportError: cannot import name ‘_gi‘ from partially initialized module ‘gi‘ ubuntu 终端无法启动
  20. 分辨率720p,VGA,QVGA,WVGA

热门文章

  1. 如何杀掉D状态的进程?[zt]【转】
  2. 设计模式学习笔记(1)之单例模式
  3. 朝花夕拾:代码生成器的基础——获取数据源的架构信息
  4. 又有一本图书在台湾出版了
  5. nyoj-716 River Crossing(动态规划)
  6. Golang之Go Module使用
  7. Golang的模板与渲染
  8. MVC5 + EF6 入门完整教程
  9. ARC 100 C - Linear Approximation题解---三分法
  10. python生成随机密码