Выберите блоки из больших изображений
задает дополнительные опции о блоках, чтобы выбрать, такие как перекрытие и располагающий с интервалами между блоками, с помощью одного или нескольких аргументов пары "имя-значение".blset
= selectBlockLocations(bigimgs
,Name,Value
)
Создайте bigimage
использование модифицированной версии изображения "tumor_091.tif" от набора данных CAMELYON16. Оригинальное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли. Оригинальное изображение имеет восемь уровней разрешения, и самый прекрасный уровень имеет разрешение 53760 61440. Модифицированное изображение имеет только три крупных уровня разрешения. Пространственная ссылка модифицированного изображения была настроена, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.
bim = bigimage('tumor_091R.tif');
Задайте местоположение всех полных блоков размера 768 1024.
bls = selectBlockLocations(bim,'BlockSize',[768 1024], ... 'ExcludeIncompleteBlocks',true);
Визуализируйте местоположения блока как прямоугольные ROI, наложенные на большом изображении. drawrectangle
функция ожидает, что размер ROI будет задан в (ширина, высота) форма, таким образом, горизонтально инвертируют размер блока blockLocationSet
, который задан в (высота, ширина) форма.
bigimageshow(bim) blockWH = fliplr(bls.BlockSize); for ind = 1:size(bls.BlockOrigin,1) drawrectangle('Position',[bls.BlockOrigin(ind,:),blockWH]); end
Создайте bigimage
использование модифицированной версии изображения "tumor_091.tif" от набора данных CAMELYON16. Оригинальное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли. Оригинальное изображение имеет восемь уровней разрешения, и самый прекрасный уровень имеет разрешение 53760 61440. Модифицированное изображение имеет только три крупных уровня разрешения. Пространственная ссылка модифицированного изображения была настроена, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.
bim = bigimage('tumor_091R.tif');
Задайте размер блоков, чтобы читать.
blockSize = [1500 1500];
Чтобы перекрыть блоки, задайте расстояние смещения блока, которое меньше размера блока.
blockOffsets = blockSize - 150;
Задайте местоположение полных блоков в изображении с помощью размера блока и расстояния смещения блока.
bls = selectBlockLocations(bim,... 'BlockSize',blockSize,... 'BlockOffSets',blockOffsets,... 'ExcludeIncompleteBlocks',true);
Визуализируйте местоположения блока как прямоугольные ROI, наложенные на большом изображении. Отобразите каждый ROI в различном цвете.
bigimageshow(bim) blockWH = fliplr(bls.BlockSize); colors = prism(size(bls.BlockOrigin,1)); for ind = 1:size(bls.BlockOrigin,1) blockColor = colors(ind,:); drawrectangle('Position',[bls.BlockOrigin(ind,:),blockWH],'Color',blockColor); end
Создайте bigimage
использование модифицированной версии изображения "tumor_091.tif" от набора данных CAMELYON16. Оригинальное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли. Оригинальное изображение имеет восемь уровней разрешения, и самый прекрасный уровень имеет разрешение 53760 61440. Модифицированное изображение имеет только три крупных уровня разрешения. Пространственная ссылка модифицированного изображения была настроена, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.
bim = bigimage('tumor_091R.tif');
Задайте размер блоков, чтобы читать.
blockSize = [1024 512];
Задайте расстояние смещения блока как 1.5 раза размер блока.
blockOffsets = 1.5*blocksize;
Задайте местоположение полных блоков в изображении с помощью размера блока и расстояния смещения блока. Получившийся blockLocationSet
объект имеет 21 блок.
bls = selectBlockLocations(bim,... 'BlockSize',blockSize,... 'BlockOffSets',blockOffsets,... 'ExcludeIncompleteBlocks',true);
Визуализируйте местоположения блока как прямоугольные ROI, наложенные на большом изображении.
bigimageshow(bim) blockWH = fliplr(bls.BlockSize); for ind = 1:size(bls.BlockOrigin,1) drawrectangle('Position',[bls.BlockOrigin(ind,:),blockWH]); end
Создайте bigimageDatastore
это читает блоки из местоположений, заданных в blockLocationSet
объект.
numBlocks = length(bls.BlockOrigin); bimds = bigimageDatastore(bim,'BlockLocationSet',bls, ... 'ReadSize',numBlocks);
Считайте все блоки в datastore и отобразите блоки как монтаж. Данные о блоке соглашаются с ROI местоположения блока, наложенными на bigimage
.
blocks = read(bimds); figure montage(blocks,'Size',[3 7],'BorderSize',5,'BackgroundColor','k');
Создайте bigimage
использование модифицированной версии изображения "tumor_091.tif" от набора данных CAMELYON16. Оригинальное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли. Оригинальное изображение имеет восемь уровней разрешения, и самый прекрасный уровень имеет разрешение 53760 61440. Модифицированное изображение имеет только три крупных уровня разрешения. Пространственная ссылка модифицированного изображения была настроена, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.
bim = bigimage('tumor_091R.tif');
Отобразите bigimage
при помощи bigimageshow
функция.
h = bigimageshow(bim);
Создайте маску на самом грубом уровне разрешения, сохранив исходную пространственную информацию о ссылке.
clevel = bim.CoarsestResolutionLevel;
imcoarse = getFullLevel(bim,clevel);
stainMask = ~imbinarize(rgb2gray(imcoarse));
bmask = bigimage(stainMask,'SpatialReferencing',bim.SpatialReferencing(clevel));
Задайте местоположение блоков, чтобы читать из bigimage
при помощи selectBlockLocations
функция. Установите размер блока как 256 256 пиксели. Выберите блоки, которые составляют по крайней мере 75% в ROI, заданном маской путем определения 'InclusionThreshold'
аргумент пары "имя-значение". По умолчанию, selectBlockLocations
выбирает блоки из самого прекрасного уровня разрешения большого изображения.
t = 0.75; blockSize = [256 256]; blockSet = selectBlockLocations(bim,"BlockSize",blockSize, ... "Masks",bmask,"InclusionThreshold",t);
Создайте bigimageDatastore
это читает четыре блока за один раз из местоположений, заданных blockLocationSet
.
bimds = bigimageDatastore(bim,"BlockLocationSet",blockSet,"ReadSize",4);
К предварительному просмотру, какие закрашенные фигуры читаются datastore, отобразите маску по исходному bigimage
использование того же размера блока и порога включения. Наложение подсвечивает в зеленом закрашенные фигуры, которые составляют по крайней мере 75% в ROI, заданном маской.
showmask(h,bmask,'BlockSize',blockSize,'InclusionThreshold',t)
Считайте первый пакет данных из datastore и отобразите возвращенные закрашенные фигуры изображений как монтаж. Содержимое этих закрашенных фигур совпадает с зелеными блоками наложения.
blocks = read(bimds); montage(blocks,'Size',[1 bimds.ReadSize],'BorderSize',5,'BackgroundColor','k');
bigimgs
— Большие изображенияbigimage
возразите | b - вектор элемента из bigimage
объектыБольшие изображения в виде a bigimage
объект или b - вектор элемента из bigimage
объекты.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'BlockSize',[224 224]
устанавливает размер блока на 224 224.'BlockOffsets'
— Смещение смежных блоковСмещение смежных блоков в виде разделенной запятой пары, состоящей из 'BlockOffsets'
и вектор-строка с 2 элементами из положительных целых чисел формы [numrows
numcols].
Значение по умолчанию равно 'BlockSize
'. Чтобы перекрыть блоки, задайте меньшее значение. Чтобы добавить разрыв между блоками, задайте большее значение.
'BlockSize'
— Размер блока'ExcludeIncompleteBlocks'
— Исключите неполные блокиfalse
или 0
(значение по умолчанию) | true
или 1
Исключите неполные блоки, которые меньше, чем 'BlockSize
'в виде разделенной запятой пары, состоящей из 'ExcludeIncompleteBlocks'
и числовой или логический 0
ложь
) или 1
TRUE
)..
'InclusionThreshold'
— Порог включения для блоков маски
(значение по умолчанию) | числовой скаляр | b - элемент числовой векторПорог включения для маски блокируется в виде разделенной запятой пары, состоящей из 'InclusionThreshold'
и числовой скаляр или b - элемент числовой вектор со значениями в области значений [0, 1]. 'InclusionThreshold'
аргумент должен иметь то же число элементов как 'Masks
'аргумент. selectBlockLocations
функция выбирает блоки, которые перекрывают передний план соответствующего блока маски процентом, больше, чем или равный значению, заданному 'InclusionThreshold'
.
Когда порогом включения является 0
, selectBlockLocations
функция выбирает блок, когда по крайней мере один пиксель в соответствующем блоке маски является ненулевым.
Когда порогом включения является 1
, selectBlockLocations
функция выбирает блок только, когда все пиксели в блоке маски являются ненулевыми.
'Levels'
— Уровень разрешенияУровень разрешения блоков из каждого большого изображения в bigimgs
В виде разделенной запятой пары, состоящей из 'Levels'
и положительное целое число или b - вектор элемента из положительных целых чисел. Если вы задаете скалярное значение, то selectBlockLocations
функция выбирает блоки из всех больших изображений на том же уровне разрешения.
Типы данных: double
'Masks'
— Рисунки маскиbigimage
возразите | b - вектор элемента из bigimage
объектыРисунки маски в виде разделенной запятой пары, состоящей из 'Masks'
и a bigimage
возразите или b - вектор элемента из bigimage
объекты. Базовым типом данных рисунков маски является logical
. selectBlockLocations
функция выбирает блоки, которые перекрывают передний план соответствующего блока маски суммой, заданной 'InclusionThreshold
'.
'UseParallel'
— Используйте параллельную обработкуfalse
или 0
(значение по умолчанию) | true
или 1
Используйте параллельную обработку, чтобы оценить блоки маски в виде разделенной запятой пары, состоящей из 'UseParallel'
и числовой или логический 0
ложь
) или 1
TRUE
).. Параллельная оценка масок выгодна, когда маски не умещаются в памяти.
Использование параллельной обработки требует Parallel Computing Toolbox™. selectBlockLocations
функционируйте использует существующий параллельный пул рабочих или открывает новый пул, когда никакой параллельный пул не активен. Свойство DataSource каждого большого изображения в bigimgs
должен быть допустимый путь на всех параллельных рабочих.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.