selectBlockLocations

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

Описание

blset = selectBlockLocations(bims) выбирает набор неналожения уникальных блоков от одного или нескольких blockedImage объекты bims в самом прекрасном разрешении, доступном в каждом изображении. Возвращает blset, 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

Figure contains an axes object. The axes object contains 21 objects of type bigimageshow, images.roi.rectangle.

Создайте блокированное изображение.

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

Figure contains an axes object. The axes object contains 22 objects of type bigimageshow, images.roi.rectangle.

Создайте блокированное изображение.

bim = blockedImage("tumor_091R.tif");

Отобразите блокированное изображение.

h = bigimageshow(bim);

Figure contains an axes object. The axes object contains an object of type bigimageshow.

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

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

Используйте showMask оценить InclusionThreshold значение.

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

Figure contains an axes object. The axes object contains an object of type bigimageshow.

Создайте blockedImagedatastore для блоков, в которых по крайней мере 90% пикселей является true в запятнанной области, как задано маской.

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"); 

Figure contains an axes object. The axes object contains an object of type image.

Входные параметры

свернуть все

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

Аргументы name-value

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

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

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

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

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

Исключите неполные блоки, которые меньше, чем 'BlockSize'в виде числового или логического 0 ложь) или 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 ложь) или 1 TRUE). Параллельная оценка масок выгодна, когда маски не умещаются в памяти.

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

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

свернуть все

Блокируйте местоположения, возвращенные как a blockLocationSet объект.

Ссылки

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

Смотрите также

| |

Внешние веб-сайты

Введенный в R2020b