3D Slicer中文教程(六)—调用matlab函数(MatlabBridge使用方法)
1.安装MatlabBridge插件
(1)在工具栏找到Extension,点击进入Extension Manager

(2)找到MatlabBridge,安装

2.配置MATLAB环境
(1)在模块处找到Developer Tools——Matlab——Matlab Modules Generator

(2)在Matlab executable处配置matlab.exe的路径(请确保计算机上安装有matlab,并且可以找到matlab.exe文件的位置);Matlab script directory的路径为存储.m文件的位置。

3.利用MATLAB函数(function)分割图像
(1)创建matlab module,在Module name处命名文件
(2)点击Generate module
(3)Matlab module包含三个文件:
•Matlabscript (*.m):Slicer调用的Matlab函数,该文件必须由用户定制,以执行所有必要的数据输入,处理和输出。
•Module descriptor(*.xml):模块描述符,该XML文件定义将在3D切片机中为模块显示的图形用户界面,该文件必须针对特定的Matlab函数进行自定义。
•Module proxy(* .bat):模块代理,该文件生成一次,不需要更改。
.m文件

.xml文件

(4)退出3D Slicer,重新打开
(5)打开样本数据,这里打开下载的MRHead数据
(6)在Module工具栏找到新建的matlab module,点击文件

(7)设置Input Volume为MRHead, Output Volume为Create new Volume

(8)点击apply按钮查看结果,如下图所示的结果

总结:3D Slicer调用matlab函数的方法使得图像处理可以更容易编程处理,方便像素级的处理。但是,也存在一定的难度。首先,安装MatlabBridge并且学会使用;其次,是需要明白其中参数的意义,才能更好的编写matlab函数处理图像;最后,需要明白在3D Slicer自带的功能下处理图像和matlab编程处理图像之间如何选择更简单有效的方式,也是十分重要的事情。
3D Slicer中文教程(六)—调用matlab函数(MatlabBridge使用方法)的更多相关文章
- 3D Slicer中文教程(一)—下载及安装方法
3D Slicer是用于医学图像信息学,图像处理和三维可视化的开源软件平台. 通过国家卫生研究院和全球开发人员社区的支持,二十多年来,Slicer为医生,研究人员和公众提供了免费,强大的跨平台加工工具 ...
- 3D Slicer中文教程(八)—导出STL文件
一.STL文件简介 STL(立体平版印刷术的缩写)是由3D Systems创建的立体平版印刷CAD软件原生的文件格式STL有“标准三角语言”和“标准镶嵌语言”等几个事后回溯.这种文件格式是由许多其他软 ...
- 3D Slicer中文教程(七)—图像中值滤波
1.中值滤波概念 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘 ...
- 3D Slicer中文教程(五)—三维视图颜色改变
3D Slicer在分割后三维重建的图像,效果很好,但是存在一定的不足,默认的颜色并不是很合适,这时手动设置三维视图下的需要的颜色就很有必要了.如下图所示,默认的三维重建后的颜色. 这样的颜色显然不是 ...
- 3D Slicer中文教程(四)—图像分割
1.数据获取 (1)下载3D Slicer自带的样本数据 (2)选择自由的数据 (3)网上数据库等其他方式下载数据 2.分割工具 Segment Editor是一个用于分割的模块.细分(也称为轮廓)描 ...
- 3D Slicer中文教程(三)—数据加载及保存方式
1.打开数据与保存数据 (1)打开数据 ——可以将数据拖拽到3D Slicer应用窗口或者从菜单栏工具栏打开. ——多种方式加载大量数据. 有关DICOM数据,请参阅DICOM模块文档. 对于几乎所有 ...
- 3D Slicer中文教程(二)—软件功能界面介绍
1.界面介绍 2.菜单及工具栏介绍 (1)菜单 File-文件菜单 文件菜单包含用于加载MRML场景的选项,用于从互联网下载样本数据集或各种类型的各个数据集.此处还提供了保存场景和数据的选项. Edi ...
- Swift中文教程(六)--枚举和结构
原文:Swift中文教程(六)--枚举和结构 Enumerations 枚举 使用 enum 来创建一个枚举.跟Classes(类)和其他类型的命名方式一样,枚举也可以有Method(方法). enu ...
- opencv通过dll调用matlab函数,图片作为参数
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实 ...
随机推荐
- windows系统中给qt工程添加第三方库
· TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp LIBS ...
- MySQL实现按天统计数据的方法
一.首先生成一个日期表,执行SQL如下: CREATE TABLE num (i int); ), (), (), (), (), (), (), (), (), (); CREATE TABLE i ...
- OSI七层模型的每一层都有哪些协议
TCP/IP: 数据链路层:ARP,RARP 网络层: IP,ICMP,IGMP 传输层:TCP ,UDP,UGP 应用层:Telnet,FTP,SMTP,SNMP. OSI: 物理层:EIA/TIA ...
- Vuex 存储||获取后台接口数据
如果你对 Vuex 有一定的了解的话呢,可以继续这一篇的学习了,如果没有的话, 建议先看一看我的上一篇 Vuex基础:地址在下面 Vuex的详解与使用 Vuex刷新数据不丢失 这篇接着上一篇: 这篇将 ...
- styled-components解决全局样式'injectGlobal' 废除的问题
最新版的 styled-components v4 已经将原有的 injectGlobal() 方法替换成了 createGlobalStyle() ,而且用法也和之前的 injectGlobal 方 ...
- git总结三、关于分支下——团队合作中最重要的合并分支
合并分支是团队合作开发中常见的操作,这里涉及到两个命令:git merge 和 git rebase 下面来好好说一下git merge和git rebase都是怎样工作的 一. 1.新建一个空目录并 ...
- Python——Pyqt5(界面)——基本设置
一.Pycharm外加设置 设置扩展工具 1.Qt Design(图形界面) Program:工程目录\venv\Lib\site-packages\pyqt5-tools\designer.exe ...
- oracle篇 之 单行函数
一.分类 1.单行函数:需要处理的行数和返回结果的行数相等(单行进单行出) 2.多行函数(组函数):返回结果的行数少于要处理的行数(多行进单行出) 二.字符处理相关函数 1.lower:字符串转换成小 ...
- 洛谷P3380 二逼平衡树
线段树+平衡树 我!又!被!卡!常!了! 以前的splay偷懒的删除找前驱后继的办法被卡了QAQ 放一个在洛谷开O2才能过的代码..我太菜了.. #include <bits/stdc++.h& ...
- python并发编程之IO阻塞基础知识点
IO模型 解决IO问题的方式方法 问题是:IO操作阻塞程序执行 解决的也仅仅是网络IO操作 一般数据传输经历的两个阶段,如图: IO阻塞模型分类: 阻塞IO 非阻塞IO 多路复用IO 异步IO(爬 ...