exponenta event banner

Сведения о заблокированном изображении с интерактивными данными окупаемости инвестиций

В этом примере показано, как отобразить детализированную область заблокированного изображения, выбранного в интерактивном режиме с помощью инструментов окупаемости инвестиций.

bigimageshow показы blockedImage объекты. Если blockedImage объект имеет несколько уровней, затем bigimageshow автоматически выбирает соответствующий уровень в зависимости от размера экрана и порта просмотра. bigimageshow всегда работает в одной «мировой координате» и отображает каждый уровень на основе его пространственной ссылочной информации. Это позволяет два дисплея одного и того же blockedImage объект для отображения детализации изображения на разных уровнях, но с одной и той же системой координат.

Создать blockedImage использование измененной версии изображения «tumor_091.tif» из набора данных CAMELYON16. Исходное изображение представляет собой тренировочное изображение лимфатического узла, содержащего опухолевую ткань. Исходное изображение имеет восемь уровней разрешения, а лучший уровень имеет разрешение 53760 на 61440. Измененное изображение имеет только три уровня грубого разрешения. Пространственная привязка модифицированного изображения была отрегулирована для обеспечения согласованного отношения сторон и регистрации признаков на каждом уровне.

bim = blockedImage('tumor_091R.tif');

Просмотр обзорного изображения и подробного вида

Отображение всего большого изображения в левой части окна фигуры с помощью bigimageshow функция. Уровень разрешения отображаемого обзора автоматически изменяется в зависимости от размера окна и размера экрана.

hf = figure;
haOView = subplot(1,2,1);
haOView.Tag = 'OverView';
hl = bigimageshow(bim,'Parent',haOView);

Зафиксируйте уровень разрешения обзорного изображения как самый высокий уровень разрешения.

coarsestLevel = bim.NumLevels;
hl.ResolutionLevel = coarsestLevel;
title('Overview');

Отображение подробного вида большого изображения в правой части окна рисунка. Позволить bigimageshow для автоматического управления уровнем детализированного изображения.

haDetailView = subplot(1,2,2);
haDetailView.Tag = 'DetailView';
hr = bigimageshow(bim,'Parent',haDetailView);

Увеличьте изображение подробного вида.

xlim([2800,3050])
ylim([500,750])
title('Detailed View');

Добавление окупаемости инвестиций в интерактивный прямоугольник к экрану управления

На обзорном изображении нарисуйте прямоугольник окупаемости инвестиций. В этом примере задается начальный размер и положение прямоугольника программным путем путем установки Position свойство как четырехэлементный вектор вида [xmin, ymin, width, height]. После появления ROI в обзоре можно в интерактивном режиме скорректировать размер и положение ROI.

xrange = xlim;
yrange = ylim;
roiPosition = [xrange(1) yrange(1) xrange(2)-xrange(1) yrange(2)-yrange(1)];
hrOView = drawrectangle(haOView,'Position',roiPosition,'Color','r');

Сохраните маркеры перемещения прямоугольника, которые будут использоваться при определении взаимодействия между прямоугольником и выносным элементом.

hrOView.UserData.haDetailView = haDetailView;
haDetailView.UserData.hrOView = hrOView;

Добавление прослушивателей на выносной элемент. Эти прослушиватели обнаруживают изменения пространственных границ выносного элемента. При изменении пространственных границ прослушиватели вызывают updateOverviewROI вспомогательная функция, которая обновляет границы ROI в соответствии с границами выносного элемента. Вспомогательная функция определяется в конце этого примера.

addlistener(haDetailView,'XLim','PostSet',@updateOverviewROI);
addlistener(haDetailView,'YLim','PostSet',@updateOverviewROI);

Добавьте прослушиватель к окупаемости инвестиций прямоугольника. Эти прослушиватели обнаруживают изменения пространственной протяженности прямоугольника. При изменении ограничений прослушиватели вызывают updateOverViewROI вспомогательная функция, которая обновляет границы подробного изображения в соответствии с границами ROI. Вспомогательная функция определяется в конце этого примера.

addlistener(hrOView,'MovingROI',@updateDetailView);

Теперь можно изменять размер и положение ROI прямоугольника в интерактивном режиме для настройки экранного представления. Аналогично, при масштабировании и панорамировании выносного элемента размер и положение ROI обновляются.

Этот пример изменяет размер и положение ROI программным путем путем установки Position собственность.

hrOView.Position = [2230,1300,980,840];
evt.CurrentPosition = hrOView.Position;
updateDetailView(hrOView,evt);

Определение функций обратного вызова для управления взаимодействиями

function updateOverviewROI(~,hEvt)
  % Update overview rectangle position whenever the right hand side
  % zooms/pans.
  ha = hEvt.AffectedObject;
  hr = hEvt.AffectedObject.UserData.hrOView;
  hr.Position = [ha.XLim(1),ha.YLim(1),diff(ha.XLim),diff(ha.YLim)];
end

function updateDetailView(hSrc,hEvt)
  % Update the right side detail view anytime the overview rectangle is
  % moved. bigimageshow automatically picks the appropriate image level.
  ha = hSrc.UserData.haDetailView;
  ha.XLim = [hEvt.CurrentPosition(1), ...
      hEvt.CurrentPosition(1)+hEvt.CurrentPosition(3)];
  ha.YLim = [hEvt.CurrentPosition(2), ...
      hEvt.CurrentPosition(2)+hEvt.CurrentPosition(4)];
end

См. также

|