bigimageDatastore

Datastore, чтобы управлять блоками больших данных изображения

Описание

bigimageDatastore управляет набором блоков изображений, которые принадлежат одному или нескольким bigimage объекты. bigimageDatastore походит на imageDatastore, который управляет набором несвязанных изображений.

Создание

Описание

bigds = bigimageDatastore(Images,Levels) создает datastore, который управляет набором блоков изображений, которые принадлежат одному или нескольким bigimage объекты, Images, на заданных уровнях разрешения, Levels.

пример

bigds = bigimageDatastore(Images,Levels,Name,Value) также пары "имя-значение" использования, чтобы установить один или несколько из BlockSize, BlockOffsets, Masks, InclusionThreshold, или IncompleteBlocks свойства. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Например, bigimageDatastore(bigimg,3,'BlockSize',[128 128],'IncompleteBlocks','pad') создает datastore, который читает блоки размера 128 128 на уровне 3 разрешения от большого изображения bigimg и нулевые клавиатуры частичные блоки ребра.

Свойства

развернуть все

Большие изображения, которые предоставляют блоки для bigimageDatastore, заданный как b - вектор элемента bigimage объекты. Чтобы считать различные уровни разрешения из того же большого изображения, задайте то же изображение многократно в векторе.

Уровень разрешения блоков из каждого большого изображения в Images, заданный как положительный целочисленный скаляр или b - вектор элемента положительных целых чисел. Если вы задаете скалярное значение, то все большие блоки предоставления изображений к bigimageDatastore на том же уровне разрешения.

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

Размер блока считанных данных, заданных как 1 2 вектор положительных целых чисел формы [numrows numcols]. Значение по умолчанию равно BlockSize свойство первого bigimage объект в Images на первом уровне разрешения в Levels.

Рисунки маски, заданные как скалярный bigimage возразите или b - вектор элемента bigimage объекты с базовым классом типа данных logical. Masks свойство определяет, какие блоки включать, когда вы вызываете read. По умолчанию, bigimageDatastore чтения все блоки.

Порог включения для блоков маски, заданных в виде числа или b - элемент числовой вектор со значениями в области значений [0, 1]. Порог включения задает минимальный процент ненулевых (true) пиксели в блоке маски, требуемом считать блок изображений.

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

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

Ограничьте размер, заданный как 1 2 вектор неотрицательных целых чисел формы [m n]. Функция добавляет m строки выше и ниже каждого блока и n столбцы, левые и правые из каждого блока с данными из соседних блоков. Для блоков, которые лежат на ребре изображения, данные дополнены согласно IncompleteBlocks. По умолчанию никакая граница не добавляется к блокам.

Блокируйте смещения, заданные как 1 2 вектор положительных целых чисел формы [numrows numcols].

Значение по умолчанию равно BlockSize. Используйте меньшее значение, чтобы получить перекрывающиеся блоки во время вызовов read. Используйте большее значение, чтобы добавить разрыв между блоками.

Метод, чтобы обработать блоки ребра, которые меньше, чем BlockSize, заданный как одно из этих значений.

Значение

Значение

"same"

Возвратите данные одного размера с блоком ребра.

"exclude"

Не включайте блоки ребра в вызовы read.

"pad"

Заполните неполные блоки к тому же размеру как BlockSize использование метода клавиатуры задано PadMethod.

Заполните метод неполных блоков ребра, заданных как одно из этих значений. По умолчанию, bigimageDatastore нулевые клавиатуры неполные блоки.

Значение

Значение

числовой скаляр

Заполните массив элементами постоянного значения.

'replicate'

Клавиатура путем повторения элементов границы массива.

'symmetric'

Заполните массив зеркальными отражениями себя.

Количество блоков, чтобы возвратиться в каждом вызове read, заданный как положительное целое число.

Функции объекта

combineОбъедините данные от нескольких datastores
hasdataОпределите, доступны ли данные для чтения
numpartitionsКоличество разделов datastore
partitionРаздел bigimageDatastore
previewПодмножество данных в datastore
readСчитайте данные из bigimageDatastore
readRelativeСчитайте соседний блок из bigimageDatastore использование относительного положения
resetСброс Datastore к начальному состоянию
shuffleПереставьте данные в datastore
transformПреобразуйте datastore

Примеры

свернуть все

Создайте bigimage. Это примеры использует модифицированную версию изображения "tumor_091.tif" от набора данных CAMELYON16. Оригинальное изображение является учебным изображением лимфатического узла, содержащего ткань опухоли. Оригинальное изображение имеет восемь уровней разрешения, и самый прекрасный уровень имеет разрешение 53760 61440. Модифицированное изображение имеет только три крупных уровня разрешения. Пространственная ссылка модифицированного изображения была настроена, чтобы осуществить сопоставимое соотношение сторон и указать функции на каждом уровне.

bim = bigimage('tumor_091R.tif');

Отобразите размер блока по умолчанию bigimage на каждом уровне разрешения. Размер блока является вектором с 2 элементами формы [numrows, numcols].

t = table((1:3)',bim.BlockSize,'VariableNames',["Level" "Block Size"]);
disp(t)
    Level     Block Size 
    _____    ____________

      1      1024    1024
      2      1024    1024
      3      1024    1024

Отобразите bigimage при помощи bigimageshow функция.

bigimageshow(bim);

Создайте bigimageDatastore на уровне 1 разрешения. Задайте размер блока не по умолчанию. Установите datastore читать четыре блока за один раз.

bimds = bigimageDatastore(bim,2,'BlockSize',[512 512])
bimds = 
  bigimageDatastore with properties:

              ReadSize: 1
            BorderSize: [0 0]
             PadMethod: 0
    InclusionThreshold: 0.5000
                 Masks: [0x0 bigimage]
                Images: [1x1 bigimage]
                Levels: 2
             BlockSize: [512 512]
          BlockOffsets: [512 512]
      IncompleteBlocks: 'same'

bimds.ReadSize = 4;

Считайте один пакет данных из datastore. Заметьте, что третий блок является частичным блоком ребра и имеет меньший размер, чем внутренние блоки. Отобразите возвращенные закрашенные фигуры изображений как монтаж. Монтаж отображает третий блок с более толстой границей, потому что ширина блока меньше, чем ширина полных блоков.

blocks = read(bimds)
blocks=4×1 cell
    {512x512x3 uint8}
    {512x512x3 uint8}
    {512x316x3 uint8}
    {512x512x3 uint8}

montage(blocks,'Size',[1 bimds.ReadSize],'BorderSize',5,'BackgroundColor','k');

Считайте следующий пакет данных из datastore и отобразите возвращенные закрашенные фигуры изображений как монтаж. Монтаж отображает частичные блоки с более толстой границей, потому что размерности блоков меньше, чем размерности полного блока.

blocks = read(bimds)
blocks=4×1 cell
    {512x512x3 uint8}
    {512x316x3 uint8}
    {226x512x3 uint8}
    {226x512x3 uint8}

montage(blocks,'Size',[1 bimds.ReadSize],'BorderSize',5,'BackgroundColor','k');

Считайте последний пакет данных из datastore. Операция чтения возвращает частичный пакет, который содержит единственную остающуюся закрашенную фигуру. Отобразите закрашенную фигуру.

blocks = read(bimds)
blocks = 1x1 cell array
    {226x316x3 uint8}

montage(blocks,'Size',[1 bimds.ReadSize],'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));

Создайте bigimageDatastore от данных изображения на самом прекрасном уровне разрешения. Задайте InclusionThreshold свойство как 0.75 так, чтобы datastore считал закрашенные фигуры, которые составляют по крайней мере 75% в ROI, заданном маской.

bimds = bigimageDatastore(bim,1,'BlockSize',[256 256], ...
    'Masks',bmask,'InclusionThreshold',0.75);
bimds.ReadSize = 4;

К предварительному просмотру, какие закрашенные фигуры читаются datastore, отобразите маску по исходному bigimage использование того же размера блока и порога включения. Наложение подсвечивает в зеленом закрашенные фигуры, которые составляют по крайней мере 75% в ROI, заданном маской.

showmask(h,bmask,'BlockSize',[256 256],'InclusionThreshold',0.75)

Считайте первый пакет данных из datastore и отобразите возвращенные закрашенные фигуры изображений как монтаж. Содержимое этих закрашенных фигур совпадает с зелеными блоками наложения.

blocks = read(bimds);
montage(blocks,'Size',[1 bimds.ReadSize],'BorderSize',5,'BackgroundColor','k');

Введенный в R2019b