Обработка блоков заблокированного изображения
Создать заблокированное изображение.
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);
bim - Заблокированное изображениеblockedImage объектЗаблокированное изображение, указанное как blockedImage объект.
bims - Массив заблокированных изображенийblockedImage массив объектовМассив заблокированных изображений, указанный как blockedImage массив объектов.
fcn - Функция обработкиФункция обработки, заданная как дескриптор функции. Дополнительные сведения см. в разделе Создание функции 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);'Adapter' - Адаптер, используемый для записи выходных данныхdestination значение (по умолчанию) | адаптер подкласс из images.blocked.AdapterАдаптер, используемый для записи выходных данных, указанный как адаптер, подклассифицированный из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 и категориальные данные.
'BatchSize' - Количество блоков, поставляемых fcn1 (по умолчанию) | числовой скалярКоличество блоков, подаваемых в функцию обработки fcn в каждом пакете, указанном как числовой скаляр. BatchSize - последняя размерность ввода в fcn. Все выходы fcn последний размер должен быть таким же, как BatchSize. BatchSize больше 1 полезно для оптимальной загрузки графических процессоров при применении вызовов вывода глубокого обучения. Когда BatchSize больше 1, PadPartialBlocks должно быть true.
'BlockLocationSet' - Набор блоков для обработкиBlockSize-размерные блоки (по умолчанию) | скаляр blockLocationSet объектНабор блоков для обработки, заданный как скаляр blockLocationSet объект. ImageNumber индексы свойств в bims массив. Задание блоков для обработки может повысить эффективность, ограничив число обрабатываемых блоков. Например, использовать selectBlockLocations с маской для ограничения применения функции обработки к определенным областям. Содержащиеся блоки должны находиться в обычной сетке.
'BlockSize' - Размер блокаBlockSize свойство заблокированного изображения (по умолчанию) | целочисленный векторРазмер блока, заданный как целочисленный вектор длиной, равной NumDimensions имущество bim. Задает размер блока, предоставленного в качестве входного значения для fcn. Если BlockSize содержит меньше элементов, apply объектная функция помещает недостающие размеры с элементами из Size собственность.
'BorderSize' - Размер границы0 (по умолчанию) | целочисленный векторРазмер границы, заданный как целочисленный вектор длиной, равной NumDimensions имущество bim. Указывает дополнительные данные из соседней области для включения в блок. Для блоков кромок: apply функция объекта использует 'PadMethod'. Если BorderSize содержит меньше элементов, apply объектная функция помещает границу с 0 с.
'DisplayWaitbar' - Панель ожидания дисплеяtrue (по умолчанию) | falseПанель ожидания отображения, заданная как логический скаляр. Если установлено значение true, apply объектная функция отображает строку ожидания для длительных операций. Если вы отмените панель ожидания, apply функция объекта возвращает частичный вывод, если он доступен.
Типы данных: logical
'ExtraImages' - Дополнительные входные данные fcnblockedImage объектыДополнительные входные данные для fcn, указанный как массив blockedImage объекты. Блоки из этого массива предоставляются fcn в качестве дополнительных вводов после bstruct: __ = fcn(bstruct, extrablock1,...). Функция apply object извлекает эти блоки из той же мировой области, что и основной блок из bim, представлено в bstruct.
'ExtraLevels' - Уровень разрешенияУровень разрешения, заданный как вектор целых значений той же длины, что и 'ExtraImages'. Это значение определяет уровень множественного разрешения для использования из соответствующего blockedImage в ExtraImages.
'Level' - Уровень разрешения для использования1 (по умолчанию) | целочисленный скалярИспользуемый уровень разрешения, заданный как целочисленный скаляр. Для blockedImage с множественным разрешением это значение определяет уровень разрешения, используемый для получения блоков для обработки.
'OutputLocation' - Расположение папки выводаchar вектор | string скалярРасположение выходной папки, указанной как string скаляр или char вектор. При наличии одного выходного сигнала apply функция объекта записывает его непосредственно в это расположение. Для нескольких выходов: apply объектная функция создает подпапки формата output<N>/ для N-го выходного сигнала. Если вход является массивом, apply объектная функция извлекает выходное имя из Source свойства соответствующего элемента. Если вход находится в памяти, apply объектная функция использует числовой индекс. Если свойство UseParallel имеет значение true, OutputLocation должен быть допустимым путем в клиентском сеансе. Свойство AlternateFileSystemRoots входных данных используется для указания требуемого сопоставления рабочих сессий. Это значение наследуется всеми выходами.
'PadMethod' - Способ прокладки'replicate' (по умолчанию) | числовой скаляр | string скаляр | char векторМетод подушки неполных блоков кромок, указанный как одно из этих значений. Метод определяет способ получения заполняющих пикселов в честь 'BorderSize' или 'PadPartialBlocks' параметры.
Стоимость | Значение |
|---|---|
числовой скаляр | Числовой массив Pad с элементами постоянного значения типа, заданного параметром |
| Прокладка путем повторения граничных элементов массива. |
'PadPartialBlocks' - Частичные колодкиfalse (по умолчанию) | trueЧастичные блоки площадки, указанные как логический скаляр. Указывает, должны ли частичные блоки, которые могут существовать на кромках, дополняться указанным размером блока. Функция apply object использует метод, указанный в PadMethod для выполнения операции заполнения.
Когда BatchSize больше 1, набор PadPartialBlocks кому true
Типы данных: logical
'Resume' - Продолжить обработку с момента остановки предыдущего прогонаfalse (по умолчанию) | trueПродолжить обработку с момента остановки предыдущего выполнения, указанного как логический скаляр. Если true, и указанные 'OutputLocation' имеет содержимое из предыдущего прогона, текущий прогон продолжит обработку, начиная с которой предыдущий прогон был остановлен. Эта поддержка зависит от используемого выходного адаптера (см. images.blocked.Adapter для получения более подробной информации). Если false, apply функция объекта удаляет предыдущее содержимое.
'UseParallel' - Использовать параллельную обработкуfalse (по умолчанию) | trueИспользуйте параллельную обработку, заданную как логический скаляр. Определяет, следует ли использовать новый или существующий параллельный пул. Если параллельный пул не активен, открывается новый пул на основе настроек параллельного пула по умолчанию. Все адаптеры, указанные свойством Adapter, должны реализовывать openInParallelToAppend метод (см. images.blocked.Adapter). Действительное OutputLocation необходимо указать. Для этого синтаксиса требуется панель инструментов параллельных вычислений.
Типы данных: logical
bres - Новое заблокированное изображениеblockedImage объектНовое заблокированное изображение, возвращенное как blockedImage объект.
apply функция объекта определяет размер вывода путем обработки первого блока. Если при обработке первого блока получается выходной блок того же размера, что и вход, то окончательный выходной размер устанавливается таким образом, чтобы он соответствовал входному. В противном случае последний блок обрабатывается для определения окончательного размера выходного сигнала. Первый блок не должен быть частичным.
apply объектная функция устанавливает InitialValue свойство выходного документа на основе типа выходного документа:
Числовые или логические выходы - InitialValue имеет значение 0.
Категориальные выходы - InitialValue имеет значение <undefined> значение соответствующего типа.
struct выходы - InitialValue получают из выходных данных первого блока. Для всех полей задано пустое значение.
blockedImage | images.blocked.Adapter | selectBlockLocations
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.