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