Я использую MATLAB R2012a для разработки графического интерфейса для ручной сегментации медицинских изображений. В частности, я хочу, чтобы эти регионы обучали классификатор для автоматической классификации тканей мозга.
Дизайн GUI I содержит 2 оси с тегами «figureImage» и «figureVOI» соответственно. В первом я хочу отобразить один срез 3D-МРТ, а в другом я хочу показать маску, связанную с этим срезом. Я разрешаю пользователю перемещаться между фрагментами с помощью полосы прокрутки.
Я использую 3D-матрицу для представления изображения («изображение») и 3D-матрицу для представления маски («вои»), обе они в структуре дескрипторов. Я инициализирую матрицу «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));
Однако, когда я нажимаю на полосу прокрутки, графический интерфейс просто прокручивается до выреза № 70, а затем все, затем графический интерфейс останавливается для обновления осей. Если я закрою окно и снова попытаюсь запустить графический интерфейс, а MATLAB покажет мне системную ошибку.
Я хочу знать, что я делаю плохо, и есть ли другой способ сделать то, что мне нужно сделать. Большое спасибо! :)
cdata
вместо использования новогоimshow
для обратного вызова обновления. Вы также должны скопировать и вставить ошибку. - person Justin   schedule 30.03.2013