Выберите блоки из заблокированных изображений
задает дополнительные опции для выбранных блоков, такие как перекрытие и интервалы между блоками, используя один или несколько аргументы пары "имя-значение".blset = selectBlockLocations(bims,Name,Value)
Создайте заблокированное изображение.
bim = blockedImage('tumor_091R.tif');Создайте набор расположения блоков, исключая неполные блоки.
bls = selectBlockLocations(bim,'ExcludeIncompleteBlocks',true);Создайте blockedImageDatastore из этого набора блоков.
bimds = blockedImageDatastore(bim,'BlockLocationSet', bls);Визуализация заблокированных местоположений.
bigimageshow(bim)
Размер блока находится в порядке строка-col (ширина по высоте).
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)
Размер блока находится в порядке строка-col (ширина по высоте).
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 (false) или 1 (true)..
'InclusionThreshold' - Порог включения маскировочных блоков0.5 (по умолчанию) | числовой скаляр | b -элементный числовой векторПорог включения для маскирующих блоков, заданный в виде числа или b-элементного числового вектора со значениями в области значений [0, 1]. The 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 (false) или 1 (true).. Параллельная оценка масок выгодна, когда маски не помещаются в памяти.
Для использования параллельной обработки требуются Toolbox™ Parallel Computing. selectBlockLocations функция использует существующий параллельный пул работников или открывает новый пул, когда параллельный пул не активен. The Source свойство каждого заблокированного изображения в bims должен быть допустимым путем для всех параллельных рабочих процессов.
blset - Расположение блоковblockLocationSet объектБлочные местоположения, возвращенные как blockLocationSet объект.
[1] Bejnordi, Бэбэк Эхтешэми, Митко Вета, Пол Джоханнс ван Дист, Брэм ван Джиннекен, Нико Карссемейджер, Герт Литьенс, Йерун А. В. М. ван дер Лак, и др. «Диагностическая оценка алгоритмов глубокого обучения для обнаружения метастазов в лимфатических узлах у женщин с раком молочной железы». JAMA 318, № 22 (12 декабря 2017): 2199-2210. https://doi.org/10.1001/jama.2017.14585.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.