blockedImageDatastore

Datastore для использования с блоками из blockedImage объекты

    Описание

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

    Создание

    Описание

    пример

    bimds = blockedImageDatastore(Images) создает blockedImageDatastore объект, который управляет набором блоков изображений одного или нескольких blockedImage объекты, Изображения.

    Если Images содержит объект с несколькими уровнями разрешения, затем blockedImageDatastore выбирает только блоки из самого прекрасного уровня разрешения. BlockSize свойство первого элемента в Images размер блока datastore по умолчанию.

    bimds = blockedImageDatastore(sources) создает datastore из файлов, заданных sources.

    bimds = blockedImageDatastore(___,Name,Value) также пары "имя-значение" использования, чтобы установить одно или несколько свойств, за исключением Images и TotalNumBlocks. Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

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

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

    Имя блокированных файлов изображений в виде массива ячеек из символьных векторов, строкового скаляра или FileSet объект. blockedImageDatastore объект преобразует изображения в файлах в блокированные изображения и устанавливает те изображения как свойство Images.

    Свойства

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

    Блоки, чтобы включать в datastore в виде a blockLocationSet объект. Объект задает который блоки включать от блокированного изображения bims. Можно повторить или не использовать отдельные блоки. Получить значение по умолчанию, blockedImageDatastore вызывает selectBlockLocations функция.

    Вы не можете изменить BlockLocationSet свойство после создания blockedImageDatastore.

    Размер блока в виде 1 D числовым вектором, где D является количеством размерностей первого блокированного изображения в Images, на первом уровне разрешения в Levels.

    Вы не можете изменить BlockSize свойство после создания blockedImageDatastore.

    Размер дополнительного блока ограничивает элементы в каждой размерности в виде 1 D числовым вектором, где D является количеством размерностей первого блокированного изображения в Images, на первом уровне разрешения в Levels. Значением по умолчанию является zeros(1,D).

    Блокированные изображения, которые предоставляют блоки для blockedImageDatastoreВ виде массива blockedImage объекты. Все элементы Images должен иметь то же количество размерностей и иметь тот же тип.

    Вы не можете изменить Images свойство после создания blockedImageDatastore.

    Метод используется для дополнения неполных блоков в виде одного из значений в этой таблице. По умолчанию datastore заполняет числовые блоки значением InitialValue свойство первого блокированного изображения в массиве блокированных изображений, Images.

    Значение

    Значение

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

    Заполните неполные блоки заданным скалярным значением. Тип значения зависит от ClassUnderlying из блокированных изображений в Images.

    'replicate'

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

    Заполните частичные блоки, которые существуют на ребре в виде логического скалярного true или false. Когда true, блокированный datastore изображений добавляет дополнение согласно дополнительному методу, заданному в PadMethod свойство.

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

    Это свойство доступно только для чтения.

    Общее количество блоков, доступных в виде числового скаляра.

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

    combineОбъедините данные от нескольких datastores
    countEachLabelКоличество количеств пикселя помечает для каждого класса
    hasdataВозвращает true если больше данных доступно в blockedImageDatastore
    numpartitionsКоличество разделов datastore
    partitionВозвратите разделенную часть blockedImageDatastore
    previewПодмножество предварительного просмотра данных в datastore
    readСчитайте данные и метаданные от blockedImageDatastore
    readallСчитывайте все данные от blockedImageDatastore
    resetСброс Datastore к начальному состоянию
    shuffleПереставьте данные в datastore
    subsetСоздайте подмножество datastore или установленный на файл
    transformПреобразуйте datastore

    Примеры

    свернуть все

    Создайте blockedImage.

    bim = blockedImage('tumor_091R.tif');

    Создайте datastore, задав уровень разрешения и blocksize.

    bls = selectBlockLocations(bim,"Levels",2,"BlockSize",[512, 512]);
    bimds = blockedImageDatastore(bim, "BlockLocationSet", bls);

    Считайте все блоки в datastore.

    b = readall(bimds)
    b=9×1 cell array
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
        {512×512×3 uint8}
    
    

    Отобразите блокированное изображение

    montage(b)

    Создайте FileSet объект, содержащий файлы повторного изображения формата файла PNG.

    fs = matlab.io.datastore.FileSet( ...
         fullfile(matlabroot,"toolbox","images","imdata"), ...
        "FileExtensions",".png");

    Создайте blockedImage объект, задавая адаптер. Это экономит время путем пропуска потребности смотреть каждый файл, чтобы выбрать подходящий адаптер.

    readAdapter = images.blocked.GenericImage;
    bims = blockedImage(fs,"Adapter",readAdapter);

    Все изображения должны иметь то же количество размерностей, поэтому только сохранить изображения RGB.

    bims = bims([bims.NumDimensions]==3);
    bimds = blockedImageDatastore(bims,"BlockSize",[300 500], ...
         "PadMethod","replicate");

    Отобразите все блоки в blockedImageDatastore.

    montage(readall(bimds),"Border",2,"BackgroundColor","w");

    Figure contains an axes object. The axes object contains an object of type image.

    Создайте blockedImage.

    bim = blockedImage('tumor_091R.tif');

    Задайте перекрывающиеся блоки.

    blockSize = [512 512];
    overlapPct = 0.5;
    blockOffsets = round(blockSize.*overlapPct);
    bls = selectBlockLocations(bim,...
          'BlockSize', blockSize,...
          'BlockOffSets', blockOffsets,...
          'ExcludeIncompleteBlocks', true);

    Создайте blockedImageDatastore.

    bimds = blockedImageDatastore(bim, "BlockLocationSet", bls);

    Отобразите перекрывающиеся блоки.

    bimds.ReadSize = 6;
    blocks = read(bimds);
    montage(blocks, "BorderSize", 5, "BackgroundColor", 'b');

    Figure contains an axes object. The axes object contains an object of type image.

    Создайте blockedImage.

    bim = blockedImage('tumor_091R.tif');

    Создайте маску на самом грубом уровне.

    bmask = apply(bim, @(bs)~imbinarize(im2gray(bs.Data)),"Level",3);

    Создайте blockedImageDatastore для блоков, которые имеют по крайней мере 90% пикселей 'on' в запятнанной области, как задано маской.

    mbls = selectBlockLocations(bim,...
         'Levels', 1, ...
         'Masks', bmask, 'InclusionThreshold', 0.90,...
         'BlockSize', [256 256]);
    bimds = blockedImageDatastore(bim, 'BlockLocationSet', mbls);

    Считайте блоки и отобразите их.

    bimds.ReadSize = 5;
    blocks = read(bimds);
    montage(blocks, "BorderSize", 5, "BackgroundColor", 'b')

    Figure contains an axes object. The axes object contains an object of type image.

    Создайте блокированные изображения из числового и маркированных данных.

    bim = blockedImage('yellowlily.jpg', 'BlockSize', [512 512]);
    lbim = blockedImage('yellowlily-segmented.png', 'BlockSize', [512 512]);

    Создайте blockedImageDatastore объекты для каждого блокированного изображения.

    bimds = blockedImageDatastore(bim);
    lbimds = blockedImageDatastore(lbim);

    Преобразуйте помеченные числовые данные в категориальные данные.

    catbimds = transform(lbimds,...
          @(bs){categorical(bs{1}, [0,1, 2, 3], ["Unknown", "Flower", "Leaf", "Background"])});

    Объедините исходный blockedImageDatastore с категориальным datastore.

    cbimds = combine(bimds,catbimds);  

    Считайте данные из datastore и отобразите его. Первая ячейка является данными изображения, второй категориальные метки.

    data = read(cbimds);
    imshow(labeloverlay(data{1},data{2}));  

    Figure contains an axes object. The axes object contains an object of type image.

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

    | |

    Введенный в R2021a