exponenta event banner

selectBlockLocations

Выбор блоков из заблокированных изображений

Описание

blset = selectBlockLocations(bims) выбирает набор неперекрывающихся уникальных блоков из одного или нескольких blockedImage объекты bims при лучшем разрешении, доступном в каждом изображении. Прибыль blset, a blockLocationsSet объект.

пример

blset = selectBlockLocations(bims,Name,Value) задает дополнительные параметры выбранных блоков, такие как перекрытие и интервал между блоками, с использованием одного или нескольких аргументов пары имя-значение.

Примеры

свернуть все

Создание заблокированного изображения.

bim = blockedImage('tumor_091R.tif');

Создайте набор расположений блоков, исключая неполные блоки.

 bls = selectBlockLocations(bim,'ExcludeIncompleteBlocks',true);

Создать blockedImageDatastore из этого набора блоков.

bimds = blockedImageDatastore(bim,'BlockLocationSet', bls);

Визуализируйте заблокированные расположения.

bigimageshow(bim)

Размер блока находится в порядке строка-кол (высота-ширина).

blockedWH = fliplr(bls.BlockSize(1,1:2));
for ind = 1:size(bls.BlockOrigin,1)
    % BlockOrigin is already in x,y order.
    drawrectangle('Position', [bls.BlockOrigin(ind,1:2),blockedWH]);
end

Создание заблокированного изображения.

bim = blockedImage('tumor_091R.tif');

Создать blockLocationSet объект.

blockSize = [2048 3072];
overlapPct = 0.5;
blockOffsets = round(blockSize.*overlapPct);
bls = selectBlockLocations(bim,...
     'BlockSize', blockSize,...
     'BlockOffSets', blockOffsets,...
     'ExcludeIncompleteBlocks', true);

Создать blockedImageDatastore из этого набора блоков.

bimds = blockedImageDatastore(bim, 'BlockLocationSet', bls);

Визуализируйте заблокированные расположения.

bigimageshow(bim)

Размер блока находится в порядке строка-кол (высота-ширина).

blockedWH = fliplr(bls.BlockSize(1,1:2));
colors = prism(size(bls.BlockOrigin,1));
for ind = 1:size(bls.BlockOrigin,1)
     blockedColor = colors(ind,:);
     % BlockOrigin is already in x-y order
     drawrectangle('Position', [bls.BlockOrigin(ind,1:2), blockedWH],'Color', blockedColor);
end

Создание заблокированного изображения.

bim = blockedImage('tumor_091R.tif');

Создать blockLocationSet объект.

blockedSize = [1024 512];
spacePct = 0.5;
blockedOffsets = blockedSize + blockedSize.*spacePct;
bls = selectBlockLocations(bim,...
          'BlockSize', blockedSize,...
          'BlockOffSets', blockedOffsets,...
          'ExcludeIncompleteBlocks', true);

Создать blockedImageDatastore объект из этого набора блоков.

bimds = blockedImageDatastore(bim, 'BlockLocationSet', bls);

Визуализация расположения блоков.

bigimageshow(bim)
% Block size is in row-col (height-width) order
blockedWH = fliplr(bls.BlockSize(1,1:2));
for ind = 1:size(bls.BlockOrigin,1)
     % BlockOrigin is already in x-y order
     drawrectangle('Position', [bls.BlockOrigin(ind,1:2), blockedWH]);
end

Создание заблокированного изображения.

bim = blockedImage('tumor_091R.tif');

Визуализация заблокированного изображения.

h = bigimageshow(bim);

Создайте маску на самом грубом уровне.

clevel = bim.NumLevels;
bmask = apply(bim, @(b)~imbinarize(im2gray(b.Data)), "Level", clevel);

Используйте sunMask для оценки InclusionThreshold значение.

showmask(h, bmask, 'BlockSize', [256 256], 'InclusionThreshold', 0.9)

Создать blockedImagedatastore для блоков, которые имеют по меньшей мере 90% пикселей «на» в окрашенной области, как определено маской.

mbls = selectBlockLocations(bim, ...
                 'Levels', 1, ...
                 'Masks', bmask, 'InclusionThreshold', 0.90,...
                 'BlockSize', [256 256]);

Создать blockedImageDatastore из этого набора блоков.

bimds = blockedImageDatastore(bim,'BlockLocationSet', mbls);

Проверьте.

bimds.ReadSize = 10;
blocks = read(bimds);
figure
montage(blocks,'BorderSize',5,'BackgroundColor','b'); 

Входные аргументы

свернуть все

Заблокированные изображения, указанные как blockedImage объект или b-элемент вектора blockedImage объекты.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'BlockSize',[224 224] устанавливает размер блока 224 на 224.

Смещение смежных блоков, определяемое как 2-элементный вектор строки положительных целых чисел вида [столбцы строк ].

Значение по умолчанию равно BlockSize, что приводит к неперекрывающимся блокам. Чтобы перекрыть блоки, задайте меньшее значение. Чтобы добавить промежуток между блоками, задайте большее значение.

Размер блока, определяемый как 2-элементный вектор строки положительных целых чисел вида [столбцы строк ]. Значение по умолчанию равно BlockSize свойство на самом высоком уровне разрешения первого заблокированного изображения в bims.

Исключить неполные блоки, размер которых меньше 'BlockSize', указано как числовое или логическое 0 (false) или 1 (true)..

Порог включения для маскирующих блоков, заданный как числовой скаляр или числовой вектор b-элемента со значениями в диапазоне [0, 1]. InclusionThreshold аргумент должен иметь то же количество элементов, что и Masks аргумент. selectBlockLocations функция выбирает блоки, перекрывающие передний план соответствующего маскирующего блока на процент, больший или равный значению, указанному 'InclusionThreshold'.

  • Когда порог включения равен 0, selectBlockLocations функция выбирает блок, когда, по меньшей мере, один пиксель в соответствующем маскирующем блоке является ненулевым.

  • Когда порог включения равен 1, selectBlockLocations функция выбирает блок, только если все пикселы в маскирующем блоке ненулевые.

Уровень разрешения блоков из каждого заблокированного изображения в bims, указывается как скалярное положительное целое число или массив того же размера, что и bims. Если задано скалярное значение, selectBlockLocations функция выбирает блоки из всех заблокированных изображений на одном уровне разрешения. Значение по умолчанию - это наилучший уровень каждого изображения в массиве заблокированных изображений. bims.

Типы данных: double

Маскировать изображения, указанные как массив того же размера, что и bims. Базовый тип данных изображений маски: logical. selectBlockLocations функция выбирает блоки, перекрывающие передний план соответствующего маскирующего блока на величину, заданную InclusionThreshold. Ожидается, что маски будут находиться в той же мировой системе координат, что и соответствующая blockedImage в bims массив.

Использовать параллельную обработку для вычисления маскирующих блоков, указанных как числовые или логические 0 (false) или 1 (true).. Параллельная оценка масок полезна, когда маски не помещаются в память.

Для использования параллельной обработки требуется Parallel Computing Toolbox™. selectBlockLocations функция использует существующий параллельный пул работников или открывает новый пул, если параллельный пул не активен. Source свойство каждого заблокированного изображения в bims должен быть допустимым путем для всех параллельных работников.

Выходные аргументы

свернуть все

Местоположения блоков, возвращенные как blockLocationSet объект.

Ссылки

[1] Бейнорди, Бабак Эхтешами, Митко Вета, Пол Йоханнес ван Диест, Брэм ван Гиннекен, Нико Карссемайер, Герт Литьенс, Йерун А. В. ван дер Лаак, и др. «Диагностическая оценка алгоритмов глубокого обучения для выявления метастазов в лимфатические узлы у женщин с раком молочной железы». JAMA 318, № 22 (12 декабря 2017): 2199-2210. https://doi.org/10.1001/jama.2017.14585.

Представлен в R2020b