文件交换

图像缩略图

切片机

版本1.0.3.0 (190 KB) 大卫Legland
用于探索3D图像(堆栈)的GUI
4.9
14评级

20下载

更新2019年3月1日

视图版本历史

查看许可协议

用于显示和探索各种类型的3D图像的图形用户界面。管理灰度,RGB,标签图像。允许Orthoslices Display,Isosurface重建,更改强度范围或查找表以及基本类型转换。
“matimage”工具箱的一部分(http://github.com/dlegland/matimage.
需要安装GUI布局工具箱

引用作为

大卫Legland(2021)。切片机(//www.tatmou.com/matlabcentral/fileexchange/27983-slicer), MATLAB中央文件交换。检索

意见及评分(47

宇新

回复到2018b解决了问题。谢谢。

宇新

现在我有一个新的错误:

找不到具有匹配签名的构造函数“handle.listener”。

在uiextras错误。容器(第92行)
obj。听众{+ 1,1}=处理。侦听器(containerObj findprop (
containerObj, 'PixelBounds'), 'PropertyPostSet', @obj。onResized);

在uiextras错误。箱(38)行
obj@uiextras.container(varargin {:});

在uiextras错误。HBox(44)行
obj@uiextras.Box(变长度输入宗量{:});

在Slicer/Slicer/setupLayout错误(第231行)
mainPanel = uiextras。HBox(“父”,高频,…

切片器错误(第175行)
setuplayout(图);

宇新

你好大卫,

我遇到了这个错误:
无法识别的函数或变量'isHGUsingMATLABClasses'。

Uiextras.Container(第62行)错误
如果isHGUsingMATLABClasses ()

在uiextras错误。箱(38)行
obj@uiextras.container(varargin {:});

在uiextras错误。HBox(44)行
obj@uiextras.Box(变长度输入宗量{:});

在Slicer/Slicer/setupLayout错误(第231行)
mainPanel = uiextras。HBox(“父”,高频,…

切片器错误(第175行)
setuplayout(图);

我已在Mac上安装了GUI布局工具箱和运行版本2019B更新4。

你知道怎么解决吗?多谢。

Abhay Nayak.

这个应用程序很棒!非常感谢您分享它。

艾哈迈德Zankoor

大卫Legland

你好,

我已经发布了一个新版本,应该可以解决这个问题。
它是包作为一个应用程序,如果你不能提取它,你可以尝试从GitHub获得代码。

最好的
大卫

马达维莎拉

嗨,大卫,运行在R2013a我得到以下错误。谢谢

使用uix.figureobserver(第34行)错误
预期主题是以下类型之一:

matlab.graphics.Graphics

相反,它的类型是ui . hbox。

ui .mixin. container错误(第46行)
figureObserver = uix。FigureObserver (obj);

在uix错误。盒子(1号线)
classdef box

UIX.hbox中的错误(第26行)
函数obj = HBox(varargin)

Slicer/Slicer/setupLayout错误(第309行)
mainpanel = uix.hbox('父',hf,...

切片器错误(第211行)
setuplayout(图);

Slicer/onOpenDemoImage错误(第934行)
切片机(img,……

在切片器>@(varargin)this.onOpenDemoImage(varargin{:}) (line 2208)
“回调”,@this.onOpenDemoImage);

在计算uimenu回调时出错

大卫Legland

嗨,凡妮莎,
你可以试试下面的语法:"Slicer('file.dcm');"。如果文件可以加载,它应该在一个新的框架打开!

Vanessa Azzopardi.

这是一个很好的工具,做得很好。只是想问一下:有没有办法通过代码可以将文件打开到Slicer中?类似:加载('file.dcm')或打开('file.dcm')。我想直接与所需文件打开图像SliCer。谢谢!

赛斯

Paul Fitzgerald.

超级!

ALA BANI IRSHID.

非常感谢你,大卫

大卫Legland

嗨,Ala Bani irshid,
Slicer工具弓用于可视化3D图像,表示为强度或颜色的3D或4D阵列。STL文件对应的是多边形网格,不能作为该贡献的输入。你可以在FEx上使用“网格”进行搜索,有一些工具可以操作网格。

ALA BANI IRSHID.

亲爱的,你能解释一下这个切片机需要的输入文件和参数吗
函数切片(x,y,z,v,xs,ys,z)我不明白这些输入是什么。
我已经读取了STL文件并保存了一下方,顶点和正常矩阵,我正在尝试切片这个文件,但我不能帮助我,我需要在Matlab中切片STL文件。

大卫Legland

你好沃尔特,
我刚刚提交了一个新版本,应该可以避免丢失手柄。它应该更稳定。
难度是在图像可用时具有代码,或者不具有。但这肯定仍然有所改善!

沃尔特·罗伯森

在第367行附近,你用ResizeFcn初始化滚动面板;在378行附近,你有条件地把它存储到这里。句柄。不幸的是,ResizeFcn可能在您到达该行之前就已激活,导致resize回调中出现错误,因为字段还不存在。您应该直接存储到句柄中,或者应该推迟设置ResizeFcn回调,直到您知道已将字段存储到句柄中。

我不清楚为什么它只被有条件地存储到句柄中?它是无条件创建的,你可能会失去它的踪迹。

丹尼斯Kohnke

Brani Dzepina

谢谢大卫这么精彩的应用程序。除了代码之外,我无法获得任何Sliacer代码为我的V2015和V2016工作!顶级

大卫Legland

嗨塞巴斯蒂安,
仍然有一些代码引用了旧版本的GUI Layout Toolbox。我尝试修复所有情况,同时保持与两个版本的兼容性。我已经快速测试了GUI Layout 2.1,现在应该工作得更好了。

塞巴斯蒂安。

亲爱的大卫,

在不同的系统上运行Matlab 2015b上的Slicer会导致以下错误:

使用uiextras错误。容器(第66行)
尝试运行使用双句柄MATLAB图形对新的图形系统。请重新安装。

在uiextras错误。箱(38)行
obj@uiextras.container(varargin {:});

在uiextras错误。HBox(44)行
obj@uiextras.Box(变长度输入宗量{:});

Slicer / Slicer / Setuplayout中的错误(第297行)
mainPanel = uiextras。HBox(“父”,高频,…

切片器错误(第211行)
setuplayout(图);

提前谢谢!

大卫Legland

奥拉夫,
不好意思,没有图像打开时出现了一个bug。我已经添加了一个更新版本,应该可以解决这个问题。

Olfa Laouini

嗨,大卫
当我运行代码,我得到以下错误

SlicerApp

索引超出矩阵维度。

切片机错误(第194行)
这一点。sliceIndex = min(这一点。片Index, this.imageSize(3));

SlicerApp/startApp错误(第61行)
obj.apphandle = eval('slicer');

slicerapp中的错误(第38行)
startapp(obj)

请你帮我谢谢

大卫Legland

@Adam海岸:
我可以建议你安装“GUI布局工具箱”,也可以在FileExchange(小心下载第一个版本,Matlab版本到2014a)。然后将路径添加到guiLayout,也添加到guiLayout工具箱的'patch'目录。希望这能解决一些问题……

亚当海岸

我想使用交互式切片机,我正在使用R2014A。当我跑步时:

元数据= analyze75info(“brainMRI.hdr”);
IMG = analyze75read(元数据);
切片机(IMG);

我得到这个错误:

未定义的函数或变量'ishgusingmatlabclass'。

Uiextras.Container(第62行)错误
如果isHGUsingMATLABClasses ()
在uiextras错误。箱(38)行
obj@uiextras.container(varargin {:});

在uiextras错误。HBox(44)行
obj@uiextras.Box(变长度输入宗量{:});
SliCer / Slicer / SetUplayout中的错误(第263行)
mainPanel = uiextras。HBox(“父”,高频,…
切片器错误(第197行)
setuplayout(图);

我真想弄清楚怎样才能让这个软件在我的机器上运行。谢谢!

大卫Legland

@Don Catanzaro:
你用的是哪个Matlab版本?在Matlab 2014b中有一个巨大的GUI更新,这个贡献现在有这样的问题。我会尽快更新的。

唐Catanzaro

使用该示例抛出以下错误:

>>元数据= analyze75info('brainMRI.hdr');
>> IMG = Analyze75Read(元数据);
>>切片机(IMG);
找不到具有匹配签名的构造函数“handle.listener”。

slicer_slicer_OpeningFcn错误(第160行)
hListener = handle.listener(处理。moveZSlider,“ActionEvent”,…

GUI_MAINFCN(第220行)错误
feval(gui_state.gui_openingfcn,gui_hfigure,[],guidata(gui_hfigure),varargin {:});

切片器错误(第128行)
gui_mainfcn (gui_State变长度输入宗量{:});

大卫Legland

嗨Jaziel,
没有简单的方法,以我的知识添加颜色条到图像。我将检查是否有可能在未来的版本中添加这个选项。
问候

Jaziel索托

你好。
当我使用Slicer()显示图像时,有没有办法添加颜色条?提前谢谢。

大卫Legland

嗨君,

从我记得的情况下,偏移量与原点相同,并且字段“源”用于指定第一像素的坐标。“原点”和“间距”用于显示用户单元中的鼠标光标坐标,但更改原点不会改变图像本身的显示。

目前还没有使用transformMatrix。这可以用于更新游标坐标(例如在displayPixelCoords函数中)。但如果你想在应用转换后显示图像,这将需要更多的工作……

君昊

嗨大卫,你真的做了辉煌的工作!
然而,我在这里有一些疑问。在阅读mhd文件后,一些信息检索,如'TransformMatrix'和'Offset',你没有使用它们来重建原始图像,对吗?你知道如何在重建图像的过程中实现这些信息吗?谢谢

大卫Legland

嗨Gianni,
我同意,这将是一个很好的改善!注意,当它们作为[ny * nx * nc * nz]数组金宝app给出时,可以在主帧中显示的矢量图像的有限支持。但只能显示当前切片的规范。我会看看延伸它!

Gianni Schena.

那么向量场的三维正交切片又如何呢?例如,将Slicer(U,V,W)作为目前限制于标量场(Slicer(M))的能力的改进。

在3正交平面上的U,V,W

邦迪

科琳

我在R2012b上使用这个应用程序,但最近升级到R2013a,现在运行Slicer应用程序有困难。我想知道这是新的Matlab版本的结果,还是我没有正确安装它。在这个问题上任何帮助都将不胜感激。
谢谢你!
科琳

大卫Legland

嗨Niru C,
该贡献致力于3D图像的可视化。对于您的问题,我建议尝试我的其他贡献GEOM3D(#24484)和GEOM2D(#7844),特别是函数InterSectPlanemesh和PolygonLength。

尼鲁C.

你好,大卫

我有这个3D点云,我用球-枢轴算法把它做成了一个三角形网格(约4500点)。我想求出一个轮廓线的周长这个轮廓线是由这个3D网格和一个平行于XY平面的平面在不同Z值处相交而成的。我可以在这个程序中这样做吗?你有什么建议?

谢谢你!

肖恩·德Wolski

你好大卫,

为了避免运行时出现错误,我不得不从GUI布局工具箱中抓取“Patch”文件夹。

%肖恩

Gianni Schena.

该功能提供了与CT / MR开发的昂贵商业软件相同的功能。
最好有一个选项来生成体素-光度的直方图(不包括背景体素),例如:hist(Volume(good_voxels),nbin)。
该组织图的谷可以用于基于区域的卷分割。

Gianni Schena.

大卫Legland

嗨,卡坦,
你的建议很好!我刚刚提交了一个更新的版本来修复它。在未来的版本中,我还将尝试添加对存储在头文金宝app件中的数据的支持。

问候,
大卫

Martijn Steenwijk.

你好大卫,

伟大的工作!关于metaImageInfo函数的一个小建议。目前,如果一个mhd文件包含标签ElementSize,但不包含标签ElementSpacing, ElementSpacing将默认设置为[1 1 1]。

这个规范状态(http://www.itk.org/Wiki/MetaIO/Documentation):
如果未指定ElementSpacing,则假定它等于ElementSize。如果没有指定,则两者都假定为1。

遵循这个ITK惯例会是个好主意吗?

最好,
马蒂累累

大卫Legland

@OPS:
我认为问题在于你试图想象的形象。

输入应为M * N * P 3D灰度图像,或M * N * 3 * P 3D彩色图像。

希望这对你有帮助?

ops ops.

不适合我
???索引超出矩阵维度。

错误==> Slicer> ComputEdisplayData在415
Data = img(:,:, zslice);

错误在==>切片器>setSlice在656
cdata = computedisplaydata(句柄);

错误==> Slicer> Slicer_openingFCN在216
setslice(手柄);

错误在==> gui_mainfcn在221
函数宏指令(gui_State。gui_OpeningFcn gui_hFigure, [],
guidata (gui_hFigure),变长度输入宗量{:});

错误==>切片机124
gui_mainfcn (gui_State变长度输入宗量{:});

大卫Legland

@sdf:实际上可以加载dicom图像(文件->import->dicom)。注意,gui并不支持所有dicom特性。金宝app我已经提交了更新的版本,应该更直观。
如果你还有错误,请发邮件给我。

自卫队

不打开。dcm图像....错误的
索引超出矩阵维度。

自卫队

???尝试去引用非结构数组字段。

错误==> Slicer> ItemOpen_Callback在980
[filename,pathname] = UigetFile(...

错误在==> gui_mainfcn在96
函数宏指令(变长度输入宗量{:});

错误==>切片机113
gui_mainfcn (gui_State变长度输入宗量{:});

错误= = >
@(fremopendata)slicer('itemopen_callback',frem,eventdata,guidata(fremate))


???在计算uimenu回调时出错

Plyz告诉我我的错误,我也添加了路径到matlab。

J雷伊

优秀,非常感谢。

Matlab释放兼容性
用R2018B创建
与任何版本兼容
平台的兼容性
视窗 苹果系统 Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!