Блоки процесса блокированного изображения
Создайте блокированное изображение.
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.Extension = "jpg";
Преобразуйте изображения в бинарные изображения на диске.
bos = apply(bims, @(b)imbinarize(im2gray(b.Data)), ... "OutputLocation",outputFolder,"Adapter",outputAdapter);
Просмотрите содержимое выходной папки с помощью приложения Image Browser путем выполнения этой команды: imageBrowser(outputFolder)
bim
— Блокированное изображениеblockedImage
объектБлокированное изображение в виде blockedImage
объект.
bims
— Блокированные изображенияblockedImage
объектыБлокированные изображения в виде массива blockedImage
объекты.
fcn
— Обработка функцииОбработка функции в виде указателя на функцию. Для получения дополнительной информации см. Создание указателя на функцию. Функция обработки 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
.
"Level",3
Adapter
— Адаптер используется для записи блокированных данных изображенияАдаптер используется для записи блокированных данных изображения в виде объекта адаптера. Чтобы задать различные адаптеры для различных выходных параметров, используйте массив ячеек. Скалярные значения расширены.
Эта таблица приводит адаптеры, включенные с тулбоксом.
Адаптер | Описание |
---|---|
BINBlocks | Сохраните каждый блок как двоичный файл в папке |
GenericImage
| Сохраните блоки в одном изображении |
GenericImageBlocks | Сохраните каждый блок как файл изображения в папке |
H5 | Сохраните блоки в одном изображении HDF5 |
H5Blocks | Сохраните каждый блок как файл HDF5 в папке |
InMemory | Сохраните блоки в переменной в оперативной памяти |
JPEGBlocks | Сохраните каждый блок как файл JPEG в папке |
MATBlocks | Сохраните каждый блок как файл MAT в папке |
PNGBlocks | Сохраните каждый блок как файл PNG в папке |
TIFF | Сохраните блоки в одном файле TIFF |
Можно также задать пользовательский адаптер, который выполняет пользовательские операции записи. Для получения дополнительной информации смотрите images.blocked.Adapter
.
BatchSize
— Количество блоков предоставляется fcn
(значение по умолчанию) | числовой скалярКоличество блоков, предоставленных обработке, функционирует 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
— Ограничьте размер
(значение по умолчанию) | вектор с целочисленным знакомОграничьте размер в виде вектора с целочисленным знаком из длины, равной NumDimensions
свойство bim
. Задает дополнительные данные из соседней области, которая будет включена в блок. Для блоков ребра, apply
возразите, что функция использует 'PadMethod'
. Если BorderSize
содержит меньше элементов, apply
возразите, что функция заполняет границу с 0s.
DisplayWaitbar
— Отобразитесь ожидают панельtrue
(значение по умолчанию) | false
Отобразитесь ожидают панель в виде логического скаляра. Когда установлено в true
, apply
возразите, что функция отображает панель ожидания для продолжительных операций. Если вы отменяете панель ожидания, apply
объектная функция возвращает частичный выходной параметр при наличии.
Типы данных: логический
ExtraImages
— Дополнительные входные параметры к fcn
blockedImage
объектыДополнительные входные параметры к fcn
В виде массива blockedImage
объекты. Блоки из этого массива предоставляются fcn
как дополнительные входные параметры после bstruct
: __ = fcn(bstruct, extrablock1,...)
. Применять объектная функция извлекает эти блоки из того же региона мира как основной блок из bim
, представленный в bstruct
.
ExtraLevels
— Уровень разрешенияУровень разрешения в виде вектора из целых чисел той же длины как 'ExtraImages'
. Каждое значение задает уровень разрешения, чтобы использовать от соответствующего blockedImage
объект в ExtraImages
.
Level
— Уровень разрешения, чтобы использовать
(значение по умолчанию) | целочисленный скалярУровень разрешения, чтобы использовать в виде целочисленного скаляра. Для мультиразрешения blockedImage
объект, это значение определяет уровень разрешения, чтобы использовать, чтобы получить блоки для обработки.
OutputLocation
— Местоположение выходной папкиchar
вектор | string
скалярМестоположение выходной папки в виде string
скаляр или char
вектор. Если существует один выход, apply
возразите, что функция пишет его непосредственно в это местоположение. Для нескольких выходных параметров, apply
объектная функция создает подпапки формата output<N>/
для N 'th выход. Если вход является массивом, apply
объектная функция выводит выходное имя из Source
свойство соответствующего элемента. Если вход в оперативной памяти, apply
возразите, что функция использует числовой индекс. Когда свойством UseParallel является true
, OutputLocation
должен быть допустимый путь на клиентском сеансе. Используйте свойство AlternateFileSystemRoots входа задать необходимое отображение для сеансов рабочего. Все выходные параметры наследовали это значение.
PadMethod
— Заполните метод'replicate'
(значение по умолчанию) | числовой скаляр | string
скаляр | char
векторЗаполните метод неполных блоков ребра в виде одного из этих значений. Метод задает, как получить дополнительные пиксели, чтобы соблюдать 'BorderSize'
или 'PadPartialBlocks'
параметры.
Значение | Значение |
---|---|
числовой скаляр | Заполните числовой массив элементами постоянного значения типа, заданного |
| Клавиатура путем повторения элементов границы массива. |
PadPartialBlocks
— Заполните частичные блокиfalse
(значение по умолчанию) | true
Заполните частичные блоки в виде логического скаляра. Задает, должны ли частичные блоки, которые могут существовать на ребрах, быть увеличены к заданному размеру блока. Применять объектная функция использует метод, заданный в PadMethod
выполнять дополнительную операцию.
Когда BatchSize
больше 1, установите PadPartialBlocks
к true
Типы данных: логический
Resume
— Продолжите обрабатывать от где предыдущий остановленный запускfalse
(значение по умолчанию) | true
Продолжите обрабатывать от где предыдущий запуск, остановленный в виде логического скаляра. Если true
, и заданный 'OutputLocation'
имеет содержимое от предыдущего запуска, текущий запуск продолжит обрабатывать от где предыдущий остановленный запуск. Эта поддержка зависит от используемого выходного адаптера. Если false
, apply
объектная функция удаляет предыдущее содержимое.
UseParallel
— Используйте параллельную обработкуfalse
(значение по умолчанию) | true
Используйте параллельную обработку в виде логического скаляра. Определяет, должен ли новый или существующий параллельный пул использоваться. Если никакой параллельный пул не активен, новый пул открыт на основе параллельных настроек по умолчанию. Все адаптеры заданы Adapter
свойство должно поддержать параллельную обработку. Необходимо задать допустимый OutputLocation
. Этот аргумент требует Parallel Computing Toolbox™.
Типы данных: логический
bres
— Новое блокированное изображениеblockedImage
объектНовое блокированное изображение, возвращенное как blockedImage
объект.
apply
объектная функция определяет выходной размер путем обработки первого блока. Если обработка первого блока дает к выходному блоку одного размера с входом, затем размер окончательного результата собирается совпадать с входом. В противном случае последний блок обрабатывается, чтобы определить размер окончательного результата. Первый блок не должен быть частичным блоком.
apply
возразите, что функция устанавливает InitialValue
свойство выхода на основе типа выхода:
Числовые или логические выходные параметры – InitialValue
установлен в 0
.
Категориальные выходные параметры – InitialValue
установлен в <undefined>
значение соответствующего типа.
struct
выходные параметры InitialValue
выведен из выхода первого блока. Все поля собираются опустеть.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.