selectBlockLocations

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

Описание

blset = selectBlockLocations(bigimgs) выбирает набор неналожения уникальных блоков от одного или нескольких bigimage объекты bigimgs в самом прекрасном разрешении, доступном в каждом изображении.

пример

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

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

свернуть все

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

Аргументы в виде пар имя-значение

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

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

Смещение смежных блоков в виде разделенной запятой пары, состоящей из 'BlockOffsets' и вектор-строка с 2 элементами из положительных целых чисел формы [numrows numcols].

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

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

Исключите неполные блоки, которые меньше, чем 'BlockSize'в виде разделенной запятой пары, состоящей из 'ExcludeIncompleteBlocks' и числовой или логический 0 ложь) или 1 TRUE)..

Порог включения для маски блокируется в виде разделенной запятой пары, состоящей из 'InclusionThreshold' и числовой скаляр или b - элемент числовой вектор со значениями в области значений [0, 1]. 'InclusionThreshold' аргумент должен иметь то же число элементов как 'Masks'аргумент. selectBlockLocations функция выбирает блоки, которые перекрывают передний план соответствующего блока маски процентом, больше, чем или равный значению, заданному 'InclusionThreshold'.

  • Когда порогом включения является 0, selectBlockLocations функция выбирает блок, когда по крайней мере один пиксель в соответствующем блоке маски является ненулевым.

  • Когда порогом включения является 1, selectBlockLocations функция выбирает блок только, когда все пиксели в блоке маски являются ненулевыми.

Уровень разрешения блоков из каждого большого изображения в bigimgsВ виде разделенной запятой пары, состоящей из 'Levels' и положительное целое число или b - вектор элемента из положительных целых чисел. Если вы задаете скалярное значение, то selectBlockLocations функция выбирает блоки из всех больших изображений на том же уровне разрешения.

Типы данных: double

Рисунки маски в виде разделенной запятой пары, состоящей из 'Masks' и a bigimage возразите или b - вектор элемента из bigimage объекты. Базовым типом данных рисунков маски является logical. selectBlockLocations функция выбирает блоки, которые перекрывают передний план соответствующего блока маски суммой, заданной 'InclusionThreshold'.

Используйте параллельную обработку, чтобы оценить блоки маски в виде разделенной запятой пары, состоящей из 'UseParallel' и числовой или логический 0 ложь) или 1 TRUE).. Параллельная оценка масок выгодна, когда маски не умещаются в памяти.

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

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

свернуть все

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

Ссылки

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

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

| |

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

Введенный в R2020b