Выбор блоков из заблокированных изображений
задает дополнительные параметры выбранных блоков, такие как перекрытие и интервал между блоками, с использованием одного или нескольких аргументов пары имя-значение.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');

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