bigimageDatastore

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

Описание

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

Создание

Описание

Создайте Datastore который Блоки Чтений По Целому Изображению

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

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

пример

bigds = bigimageDatastore(images,levels,Name,Value) также пары "имя-значение" использования, чтобы установить одно или несколько Свойств за исключением BlockLocationSet. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

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

Создайте Datastore который Блоки Чтений в Заданных Местоположениях

пример

bigds = bigimageDatastore(images,'BlockLocationSet',blockLocationSet) создает datastore, который читает блоки из bigimage объекты, Изображения, с помощью уровня разрешения, размера блока и положений блока заданы BlockLocationSet.

bigds = bigimageDatastore(images,'BlockLocationSet',blockLocationSet,Name,Value) также пары "имя-значение" использования, чтобы установить один или несколько BorderSize, IncompleteBlocks, PadMethod и свойств ReadSize. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Пример: bigimageDatastore(bigimg,'BlockLocationSet',bls,'ReadSize',4) создает datastore, который читает четыре блока за один раз из больших изображений bigimg согласно положению, размер блока и уровень разрешения заданы bls.

Свойства

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

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

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

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

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

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

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

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

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

Блокируйте местоположения в виде blockLocationSet объект.

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

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

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

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

Значение

Значение

"same"

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

"exclude"

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

"pad"

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

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

Значение

Значение

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

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

скаляр строки

Заполните категориальный массив заданным классом в свойстве Classes базового bigimage.

"replicate"

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

"symmetric"

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

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

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

combineОбъедините данные от нескольких datastores
countEachLabelСчитайте количество пиксельных меток для каждого класса bigimageDatastore
hasdataОпределите, доступны ли данные для чтения
numpartitionsКоличество разделов datastore
partitionРаздел bigimageDatastore
previewПодмножество данных в datastore
readСчитайте данные из bigimageDatastore
readRelativeСчитайте соседний блок из bigimageDatastore использование относительного положения
resetСброс Datastore к начальному состоянию
shuffleПереставьте данные в datastore
transformПреобразуйте datastore
isPartitionableОпределите, partitionable ли datastore
isShuffleableОпределите, shuffleable ли 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],'ReadSize',4)
bimds = 
  bigimageDatastore with properties:

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

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

blocks = read(bimds)
blocks=4×1 cell array
    {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 array
    {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],'ReadSize',4, ...
    'Masks',bmask,'InclusionThreshold',0.75);

К предварительному просмотру, какие закрашенные фигуры читаются 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');

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

bim = bigimage('tumor_091R.tif');

Отобразите целый bigimage на самом прекрасном уровне разрешения.

bshow = bigimageshow(bim);

Задайте четыре [x y] местоположения блока от самого прекрасного уровня. Первые два блока перекрываются в вертикальном направлении. Вторые два блока смежны горизонтально.

xyLocations = [ ...
    2800 1300; ...
    2800 1400; ...
    1500 2400; ...
    1800 2400];
blockSize = [300,300];

Все блоки от того же изображения. Задайте номер изображения как 1 для всех блоков.

imageNumber = [1 1 1 1]';
locationSet = blockLocationSet(imageNumber,xyLocations,blockSize);

Создайте bigimageDatastore использование blockLocationSet.

bimds = bigimageDatastore(bim,'BlockLocationSet',locationSet);

Считайте два блока за один раз и отобразите их в монтаже. Datastore читает блоки из положений, заданных blockLocationSet.

bimds.ReadSize = 2;
while hasdata(bimds)
    figure
    blocks = read(bimds);
    montage(blocks,'BorderSize',5,'BackgroundColor','b');
end

Введенный в R2019b