【发布时间】:2013-03-21 05:07:36
【问题描述】:
我正在使用 MATLAB R2012a 开发用于手动医学图像分割的 GUI。特别是,我希望这些区域能够训练用于自动脑组织分类的分类器。
我设计的 GUI 包含 2 个轴,分别带有标签“figureImage”和“figureVOI”。在第一个中,我想显示 3D MRI 扫描的单个切片,而在另一个中,我想显示与该切片相关联的蒙版。我允许用户使用滚动条在切片之间移动。
我使用 3D 矩阵来表示图像 ('image'),并使用 3D 矩阵来表示蒙版 ('voi'),它们都在句柄结构中。我在加载 GUI 时用零初始化“voi”矩阵。
我在用户点击滚动条时应用的代码如下:
% update the number of the actual slice
handles.actualSlice = round(get(handles.sliceSelector, 'Value'));
% update the image and the mask
axes(handles.figureImage)
imshow(handles.image(:, :, handles.actualSlice));
axes(handles.figureVOI)
imshow(handles.voi(:, :, handles.actualSlice));
但是,当我点击滚动条时,GUI 只是滚动到大约 70 度,然后 GUI 停止更新轴。如果我关闭窗口并尝试再次运行 GUI,MATLAB 会显示系统错误。
我想知道我做错了什么,以及是否有其他方法可以做我需要做的事情。非常感谢! :)
【问题讨论】:
-
无法真正理解这里发生了什么。但是,作为提醒,您应该重置
cdata,而不是使用新的imshow进行更新回调。您也应该复制并粘贴错误。