apply

Блоки процесса блокированного изображения

    Описание

    пример

    bres = apply(bim,fcn) обрабатывает целое блокированное изображение bim путем применения указателя на функцию fcn с каждым блоком. Возвращает bres, новое блокированное изображение, содержащее обработанные данные.

    [bres1,bres2,...] = apply(bim,fcn) возвращает несколько выходных аргументов. Заданный указатель на функцию, fcn, должен указать на функцию пользователя, которая возвращает то же количество аргументов.

    [bres1s,bres2s,...] = apply(bims,fcn) обрабатывает массив блокированных изображений bims путем применения указателя на функцию fcn с каждым блоком каждого блокированного изображения. Возвращает массив блокированных изображений, содержащих обработанные данные.

    Примеры

    свернуть все

    Создайте блокированное изображение.

    bim = blockedImage("tumor_091R.tif");

    Создайте фильтр сглаживания и примените его к блокам в блокированном изображении.

    smoothing = 2000;

    imguidedfilter работает с окружением по умолчанию 5 пикселей. Добавьте границу во вход, чтобы считать дополнительные данные. Это краевые элементы изображения автоматически обрезаются от выхода, поскольку он одного размера с входом.

    benh= apply(bim,...
        @(bs)imguidedfilter(bs.Data,bs.Data,"DegreeOfSmoothing", smoothing),...
        "BorderSize", [5 5]);

    Отобразите оригинальное изображение и улучшенное изображение.

    ha1 = subplot(1,2,1);
    bigimageshow(bim,"ResolutionLevel",1);
    ha2 = subplot(1,2,2);
    bigimageshow(benh);
    linkaxes([ha1, ha2]);
    xlim([2100, 2600])
    ylim([1800 2300])

    Создайте блокированное изображение.

    bim = blockedImage("tumor_091R.tif");

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

    bmask = apply(bim, @(bs)rgb2gray(bs.Data)<80, "Level",3);
    figure
    bigimageshow(bmask)

    Используйте маску, чтобы ограничить области, обработанные вызовом apply объектная функция.

    bls = selectBlockLocations(bim, "Mask", bmask,"InclusionThreshold", 0.005);
    benh = apply(bim, @(bs)imguidedfilter(bs.Data,bs.Data,"DegreeOfSmoothing", 2000),...
        "BorderSize", [5 5],...
        "BlockLocationSet", bls); 

    Отобразите оригинальное изображение и улучшенное изображение.

    figure
    ha1 = subplot(1,2,1);
    bigimageshow(bim,"ResolutionLevel",1);
    ha2 = subplot(1,2,2);
    bigimageshow(benh);
    linkaxes([ha1, ha2]);      

    Создайте установленное на файл из всех изображений JPEG в демонстрационной папке тулбокса изображений.

    fs = matlab.io.datastore.FileSet(...
        fullfile(matlabroot,'toolbox','images','imdata'),...
        "FileExtensions", {'.jpg'});

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

    bims = blockedImage(fs);

    Преобразуйте изображения в бинарные изображения.

    outputFolder = tempname;
    outputAdapter = images.blocked.GenericImage;
    outputAdapter.Format = 'jpg';
    bos = apply(bims, @(bs)imbinarize(im2gray(bs.Data)), ...
        "OutputLocation", outputFolder,...
        "Adapter", outputAdapter);

    Чтобы смотреть результаты, используйте Image Browser, чтобы просмотреть содержимое выходной папки: imageBrowser(outputFolder);

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

    свернуть все

    Блокированное изображение в виде blockedImage объект.

    Массив блокированных изображений в виде blockedImage objectArray.

    Обработка функции в виде указателя на функцию. Для получения дополнительной информации см. Создание указателя на функцию. Функция обработки fcn должен принять bstruct как введено. Чтобы передать дополнительные аргументы, задайте fcn как анонимная функция. Для получения дополнительной информации см. Анонимные функции.

    bstruct struct с этими полями:

    Поле Описание
    DataБлок данных от bim
    StartИндексы первого элемента в блоке. Если BorderSize задан, этот индекс может выйти за пределы для блоков ребра.
    EndИндексы последнего элемента в блоке. Если BorderSize задан, этот индекс может выйти за пределы для блоков ребра.
    BlocksubБлокируйте индексы текущего блока
    BorderSizeЗначение параметра BorderSize.
    BlockSizeЗначение BlockSize параметр. Примечание: size(data) может быть меньше этого значения для блоков границы когда PadPartialValue является ложным.
    BatchSizeЗначение BatchSize параметр
    ImageNumberИндексируйте в bim массив для текущего изображения.
    LevelУровень разрешения, из которого считываются данные.

    Функциональный fcn обычно возвращает результаты для одного блока. Результаты могут быть числовыми, struct, или categorical.

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

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

    Пример: bmask = apply(bim,@(bs)rgb2gray(bs.Data)<80, "Level",3);

    Адаптер использовал для записи выхода в виде адаптера, который разделяется на подклассы от theimages.blocked.Adapter класс. Эти классы адаптера реализуют все методы, требуемые интерфейсом. Чтобы задать различные адаптеры для различных выходных параметров, используйте массив ячеек. Скалярные значения расширены.

    Эта таблица приводит адаптеры, включенные с тулбоксом.

    АдаптерОписание
    images.blocked.BINBlocks Сохраните каждый блок как бинарный файл блоба в папке.
    images.blocked.GenericImage Сохраните блоки в одном изображении.
    images.blocked.GenericImageBlocksСохраните каждый блок как файл изображения в папке
    images.blocked.H5 Сохраните блоки в одном изображении HDF5
    images.blocked.H5Blocks Сохраните каждый блок как файл HDF5 в папке
    images.blocked.InMemoryСохраните блоки в переменной в оперативной памяти
    images.blocked.JPEGBlocksСохраните каждый блок как файл JPEG в папке
    images.blocked.MATBlocks Сохраните каждый блок как файл MAT в папке.
    images.blocked.PNGBlocks Сохраните каждый блок как файл PNG в папке.
    images.blocked.TIFFСохраните блоки в одном файле TIFF.

    Необходимо задать значение для 'OutputLocation' свойство для всех адаптеров кроме images.blocked.InMemory. Если вы не задаете значение для OutputLocation параметр, запишите использованию images.blocked.InMemory как адаптер по умолчанию. В противном случае адаптером по умолчанию является images.blocked.BINBlocks для числовых и логических данных и images.blocked.MATBlocks для struct и категориальные данные.

    Количество блоков, предоставленных обработке, функционирует fcn в каждом пакете в виде числового скаляра. BatchSize последняя размерность входа к fcn. Все выходные параметры fcn должен иметь последнюю размерность совпасть с BatchSize. BatchSize больше, чем 1 полезно, чтобы оптимально загрузить графические процессоры при применении вызовов вывода глубокого обучения. Когда BatchSize больше 1, PadPartialBlocks должен быть true.

    Набор блоков к процессу в виде скалярного blockLocationSet объект. ImageNumber свойство индексирует в bims массив. Определение блоков к процессу может повысить эффективность путем ограничения количества обработанных блоков. Например, используйте selectBlockLocations с маской, чтобы ограничить применение обработки функционируют в определенные области. Содержавшие блоки должны быть на обычной сетке.

    Размер блока в виде вектора с целочисленным знаком из длины равняется NumDimensions свойство bim. Задает размер блока, предоставленного как вход fcn. Если BlockSize содержит меньше элементов, apply возразите, что функция заполняет недостающие размерности элементами от Size свойство.

    Ограничьте размер в виде вектора с целочисленным знаком из длины, равной NumDimensions свойство bim. Задает дополнительные данные из соседней области, которая будет включена в блок. Для блоков ребра, apply возразите, что функция использует 'PadMethod'. Если BorderSize содержит меньше элементов, apply возразите, что функция заполняет границу с 0s.

    Отобразитесь ожидают панель в виде логического скаляра. Когда установлено в true, apply возразите, что функция отображает панель ожидания для продолжительных операций. Если вы отменяете панель ожидания, apply объектная функция возвращает частичный выходной параметр при наличии.

    Типы данных: логический

    Дополнительные входные параметры к fcnВ виде массива blockedImage объекты. Блоки из этого массива предоставляются fcn как дополнительные входные параметры после bstruct: __ = fcn(bstruct, extrablock1,...). Применять объектная функция извлекает эти блоки из того же региона мира как основной блок из bim, представленный в bstruct.

    Уровень разрешения в виде вектора из целочисленных значений той же длины как 'ExtraImages'. Это значение задает уровень мультиразрешения, чтобы использовать от соответствующего blockedImage в ExtraImages.

    Уровень разрешения, чтобы использовать в виде целочисленного скаляра. Для мультиразрешения blockedImage это значение определяет уровень разрешения, чтобы использовать, чтобы получить блоки для обработки.

    Местоположение выходной папки в виде string скаляр или char вектор. Если существует один выход, apply возразите, что функция пишет его непосредственно в это местоположение. Для нескольких выходных параметров, apply объектная функция создает подпапки формата output<N>/ для N 'th выход. Если вход является массивом, apply объектная функция выводит выходное имя из Source свойство соответствующего элемента. Если вход в оперативной памяти, apply возразите, что функция использует числовой индекс. Когда свойством UseParallel является true, OutputLocation должен быть допустимый путь на клиентском сеансе. Используйте свойство AlternateFileSystemRoots входа задать необходимое отображение для сеансов рабочего. Все выходные параметры наследовали это значение.

    Заполните метод неполных блоков ребра в виде одного из этих значений. Метод задает, как получить дополнительные пиксели, чтобы соблюдать 'BorderSize' или 'PadPartialBlocks' параметры.

    Значение

    Значение

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

    Заполните числовой массив элементами постоянного значения типа, заданного ClassUnderlying свойство блокированного изображения.

    'replicate'

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

    Заполните частичные блоки в виде логического скаляра. Задает, должны ли частичные блоки, которые могут существовать на ребрах, быть увеличены к заданному размеру блока. Применять объектная функция использует метод, заданный в PadMethod выполнять дополнительную операцию.

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

    • Когда true, apply функционируйте заполняет частичные блоки с помощью заданного PadMethod. Функция обработки fcn работает с и возвращает полноразмерные блоки.

    Когда BatchSize больше 1, установите PadPartialBlocks к true

    Типы данных: логический

    Продолжите обрабатывать от где предыдущий запуск, остановленный в виде логического скаляра. Если true, и заданный 'OutputLocation' имеет содержимое от предыдущего запуска, текущий запуск продолжит обрабатывать от где предыдущий остановленный запуск. Эта поддержка зависит от используемого выходного адаптера (см. images.blocked.Adapter для большего количества детали). Если false, apply объектная функция удаляет предыдущее содержимое.

    Используйте параллельную обработку в виде логического скаляра. Определяет, должен ли новый или существующий параллельный пул использоваться. Если никакой параллельный пул не активен, новый пул открыт на основе параллельных настроек по умолчанию. Все адаптеры, заданные свойством Adapter, должны реализовать openInParallelToAppend метод (См. images.blocked.Adapter). Допустимый OutputLocation должен быть задан. Этот синтаксис требует Parallel Computing Toolbox.

    Типы данных: логический

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

    свернуть все

    Новое блокированное изображение, возвращенное как blockedImage объект.

    Советы

    • apply объектная функция определяет выходной размер путем обработки первого блока. Если обработка первого блока дает к выходному блоку одного размера с входом, затем размер окончательного результата собирается совпадать с входом. В противном случае последний блок обрабатывается, чтобы определить размер окончательного результата. Первый блок не должен быть частичным блоком.

    • apply возразите, что функция устанавливает InitialValue свойство выхода на основе типа выхода:

      • Числовые или логические выходные параметры – InitialValue установлен в 0.

      • Категориальные выходные параметры – InitialValue установлен в <undefined> значение соответствующего типа.

      • struct выходные параметры InitialValue выведен из выхода первого блока. Все поля собираются опустеть.

    Введенный в R2021a