Выберите блоки из блокированных изображений
задает дополнительные опции о блоках, чтобы выбрать, такие как перекрытие и располагающий с интервалами между блоками, с помощью одного или нескольких аргументов пары "имя-значение".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);Используйте showMask, чтобы оценить InclusionThreshold значение.
showmask(h, bmask, 'BlockSize', [256 256], 'InclusionThreshold', 0.9)

Создайте blockedImagedatastore для блоков, которые имеют по крайней мере 90% пикселей 'on' в запятнанной области, как задано маской.
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');

bims — Блокированные изображенияblockedImage возразите | b - вектор элемента из blockedImage объектыБлокированные изображения в виде blockedImage объект или b - вектор элемента из blockedImage объекты.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'BlockSize',[224 224] устанавливает размер блока на 224 224.'BlockOffsets' — Смещение смежных блоковСмещение смежных блоков в виде вектора-строки с 2 элементами из положительных целых чисел формы [rows columns].
Значение по умолчанию равно BlockSize, получившийся в неналожении блоков. Чтобы перекрыть блоки, задайте меньшее значение. Чтобы добавить разрыв между блоками, задайте большее значение.
'BlockSize' — Размер блокаРазмер блока в виде вектора-строки с 2 элементами из положительных целых чисел формы [rows
columns]. Значение по умолчанию равно BlockSize свойство на самом прекрасном уровне разрешения первого блокированного изображения в bims.
'ExcludeIncompleteBlocks' — Исключите неполные блокиfalse или 0 (значение по умолчанию) | true или 1Исключите неполные блоки, которые меньше, чем 'BlockSize'в виде числового или логического 0 ложь) или 1 TRUE)..
'InclusionThreshold' — Порог включения для блоков маски (значение по умолчанию) | числовой скаляр | b - элемент числовой векторПорог включения для маски блокируется в виде числового скаляра или b - элемент числовой вектор со значениями в области значений [0, 1]. InclusionThreshold аргумент должен иметь то же число элементов как Masks аргумент. selectBlockLocations функция выбирает блоки, которые перекрывают передний план соответствующего блока маски процентом, больше, чем или равный значению, заданному 'InclusionThreshold'.
Когда порогом включения является 0, selectBlockLocations функция выбирает блок, когда по крайней мере один пиксель в соответствующем блоке маски является ненулевым.
Когда порогом включения является 1, selectBlockLocations функция выбирает блок только, когда все пиксели в блоке маски являются ненулевыми.
'Levels' — Уровень разрешенияУровень разрешения блоков из каждого блокированного изображения в bimsВ виде скалярного положительного целого числа или массива одного размера с bims. Если вы задаете скалярное значение, selectBlockLocations функция выбирает блоки из всех блокированных изображений на том же уровне разрешения. Значением по умолчанию является самый прекрасный уровень каждого изображения в массиве блокированных изображений, bims.
Типы данных: double
'Masks' — Рисунки маскиblockedImage возразите | массив blockedImage объектыРисунки маски в виде массива тот же размер как bims. Базовым типом данных рисунков маски является logical. selectBlockLocations функция выбирает блоки, которые перекрывают передний план соответствующего блока маски суммой, заданной InclusionThreshold. Маски, как ожидают, будут в той же системе мировой координаты как соответствующий blockedImage в bims массив.
'UseParallel' — Используйте параллельную обработкуfalse или 0 (значение по умолчанию) | true или 1Используйте параллельную обработку, чтобы оценить блоки маски в виде числового или логического 0 ложь) или 1 TRUE).. Параллельная оценка масок выгодна, когда маски не умещаются в памяти.
Использование параллельной обработки требует Parallel Computing Toolbox™. selectBlockLocations функционируйте использует существующий параллельный пул рабочих или открывает новый пул, когда никакой параллельный пул не активен. Source свойство каждого блокированного изображения в bims должен быть допустимый путь на всех параллельных рабочих.
blset — Блокируйте местоположенияblockLocationSet объектБлокируйте местоположения, возвращенные как a blockLocationSet объект.
[1] Bejnordi, Babak Ehteshami, Митко Вета, Пол Джоханнс ван Дист, Брэм ван Джиннекен, Нико Карссемейджер, Герт Литьенс, Йерун А. В. М. ван дер Лак, и др. “Диагностическая Оценка Алгоритмов Глубокого обучения для Обнаружения Метастаз Лимфатического узла в Женщинах С Раком молочной железы”. JAMA 318, № 22 (12 декабря 2017): 2199–2210. https://doi.org/10.1001/jama.2017.14585.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.