exponenta event banner

обратиться

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

    Описание

    пример

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

    Для проверки результатов используйте браузер изображений для просмотра содержимого папки вывода: imageBrowser(outputFolder);

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

    свернуть все

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

    Массив заблокированных изображений, указанный как blockedImage массив объектов.

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

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

    ОбластьОписание
    DataБлок данных из bim
    StartИндексы первого элемента в блоке. Если BorderSize указывается, этот нижний индекс может быть вне границ для блоков кромок.
    EndИндексы последнего элемента в блоке. Если BorderSize указывается, этот нижний индекс может быть вне границ для блоков кромок.
    BlocksubИндексы блоков текущего блока
    BorderSizeЗначение параметра BorderSize.
    BlockSizeЗначение BlockSize параметр. Примечание: size(data) может быть меньше этого значения для блоков границ, когда PadPartialValue имеет значение false.
    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);

    Адаптер, используемый для записи выходных данных, указанный как адаптер, подклассифицированный изimages.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 объектная функция помещает границу с 0 с.

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

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

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

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

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

    Расположение выходной папки, указанной как string скаляр или char вектор. При наличии одного выходного сигнала apply функция объекта записывает его непосредственно в это расположение. Для нескольких выходов: apply объектная функция создает подпапки формата output<N>/ для N-го выходного сигнала. Если вход является массивом, apply объектная функция извлекает выходное имя из Source свойства соответствующего элемента. Если вход находится в памяти, apply объектная функция использует числовой индекс. Если свойство UseParallel имеет значение true, OutputLocation должен быть допустимым путем в клиентском сеансе. Свойство AlternateFileSystemRoots входных данных используется для указания требуемого сопоставления рабочих сессий. Это значение наследуется всеми выходами.

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

    Стоимость

    Значение

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

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

    'replicate'

    Прокладка путем повторения граничных элементов массива.

    Частичные блоки площадки, указанные как логический скаляр. Указывает, должны ли частичные блоки, которые могут существовать на кромках, дополняться указанным размером блока. Функция apply object использует метод, указанный в PadMethod для выполнения операции заполнения.

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

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

    Когда BatchSize больше 1, набор PadPartialBlocks кому true

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

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

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

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

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

    свернуть все

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

    Совет

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

    • apply объектная функция устанавливает InitialValue свойство выходного документа на основе типа выходного документа:

      • Числовые или логические выходы - InitialValue имеет значение 0.

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

      • struct выходы - InitialValue получают из выходных данных первого блока. Для всех полей задано пустое значение.

    Представлен в R2021a