В этом примере показано, как использовать приложение «Процессор пакетной обработки изображений» для обработки группы изображений в одной папке.
Создайте новую папку в области, где у вас есть разрешение на запись, и скопируйте набор из 10 изображений из панели инструментов обработки изображений imdata в новую папку.
mkdir('cellprocessing'); copyfile(fullfile(matlabroot,'toolbox','images','imdata','AT3*.tif'),'cellprocessing','f');
Откройте приложение «Пакетный процессор изображений» на панели инструментов MATLAB ®. На вкладке «Приложения» в разделе «Обработка изображений и компьютерное видение» выберите «Процессор пакетной обработки изображений
».

Загрузите изображения в приложение. На панели инструментов приложения щелкните Загрузить изображения. В диалоговом окне «Загрузка изображений из папки» укажите папку, содержащую изображения, которые требуется загрузить. В этом примере укажите папку, созданную на первом шаге. cellprocessing. По умолчанию приложение включает изображения во вложенные папки. Чтобы изменить это поведение, снимите флажок «Включать изображения во вложенные папки». Затем нажмите кнопку Загрузить.

Приложение Обработчик пакетов изображений создает миниатюры изображений в папке и отображает их на прокручиваемой вкладке в левой панели. Приложение отображает первое выбранное изображение (выделенное синим цветом) в большем разрешении на вкладке «Входное изображение» в правой панели.

Укажите имя функции, которая будет использоваться для обработки изображений в папке. Чтобы указать существующую функцию, введите имя в поле Имя функции в разделе Пакетная функция на панели инструментов приложения. Можно также щелкнуть значок папки рядом с полем, чтобы просмотреть и выбрать функцию. Чтобы создать новую функцию пакетной обработки, щелкните Создать в разделе Пакетная функция на панели инструментов приложения. При этом приложение открывает шаблон функции пакетной обработки в редакторе MATLAB ®. В этом примере нажмите кнопку Создать, чтобы создать новую функцию .

В шаблоне функции пакетной обработки введите код новой функции в пространство, зарезервированное в файле шаблона, и нажмите кнопку Сохранить. В этом примере используется имя по умолчанию для функции пакетной обработки. myimfcn, но можно указать любое имя. В этом примере код задает функцию, которая создает маскирующее изображение, вычисляет общее количество ячеек в изображении и создает пороговую версию исходного изображения.
function results = myimfcn(im) %Image Processing Function % % IM - Input image. % RESULTS - A scalar structure with the processing results. % %-------------------------------------------------------------------------- % Auto-generated by imageBatchProcessor App. % % When used by the App, this function will be called for every input image % file automatically. IM contains the input image as a matrix. RESULTS is a % scalar structure containing the results of this processing function. % %-------------------------------------------------------------------------- imstd = stdfilt(im,ones(27)); bw = imstd>30; thresholdMask = imfuse(im, bw); [~, n] = bwlabel(bw); results.bw = bw; results.thresholdMask = thresholdMask; results.numCells = n; end
Сохраните файл. После сохранения приложение отобразит имя этой новой функции в поле Имя функции на панели инструментов приложения.

Протестируйте новую функцию, запустив пакетный процессор на одном из изображений. Если выбрано одно изображение (выделено синим цветом), щелкните Обработать выбранное (Process Selected), чтобы обработать выбранное изображение. Приложение отображает результаты обработки на новой вкладке Результаты. В этом примере приложение отображает двоичную маску, число объектов (ячеек) в изображении и пороговую версию изображения.

Чтобы получить более полное представление о результатах изображения, щелкните Показать (Show) для данного результата на вкладке Результаты (Results). Приложение откроет версию изображения с большим разрешением на новой вкладке в нижней центральной области. Для этого примера просмотрите результаты двоичной маски, щелкнув Показать для bw на вкладке Результаты. Для просмотра результатов наведите курсор на изображение, чтобы получить доступ к элементам управления панорамированием и масштабированием. При масштабировании и панорамировании приложение связывает результирующее изображение с исходным изображением - панорамирование или масштабирование одного изображения также приводит к перемещению другого изображения. Если такое поведение не требуется, снимите флажок «Связать оси» на панели инструментов приложения.

Если результаты тестового запуска для одного образа успешны, выполните функцию для всех образов в папке. Чтобы обработать все изображения одновременно, на панели инструментов приложения щелкните Обработать выбранные и выберите Обработать все. Чтобы обработать только подмножество изображений, щелкните Обработать выбранные (Process Selected). Можно выбрать изображения для обработки, нажав Ctrl и щелкнув нужные изображения, или щелкнув одно изображение для начала, нажав Shift и щелкнув другое изображение для выбора всех изображений между начальным и конечным изображениями. Если у вас есть Toolbox™ Parallel Computing, можно нажать кнопку Использовать параллельное на панели инструментов приложения, чтобы обработать изображения в локальном пуле параллельных вычислений. В этом примере обработайте все изображения.
Приложение обрабатывает все изображения в указанной папке. Зеленый квадрат рядом с миниатюрой указывает на то, что приложение успешно обработало это изображение. Вкладка «Результаты» содержит результаты выбранного изображения (выделено синим цветом). Строка состояния в правом нижнем углу приложения сообщает о количестве обработанных изображений.
Чтобы сохранить результаты, щелкните Экспорт (Export), чтобы просмотреть доступные опции. Можно экспортировать результаты в рабочую область или в файл или получить код MATLAB ®, используемый приложением для создания результатов.
Сохраните результаты в переменной рабочей области. На панели инструментов приложения щелкните Экспорт и выберите параметр Экспорт результата всех обработанных изображений в рабочую область. В открывшемся диалоговом окне выберите результаты, которые требуется экспортировать. Распространенный подход заключается в экспорте неимиджевых результатов в рабочую область и сохранении изображений, являющихся результатом обработки в файлах. В этом примере число ячеек сохраняется вместе с именем входного файла в переменной рабочего пространства. numCells.

По умолчанию приложение возвращает результаты, выбранные в таблице с именем allresults. Чтобы сохранить результаты в структуре вместо таблицы, выберите Struct Array в разделе Choose format диалогового окна. Чтобы указать другое имя результирующей переменной, измените имя переменной в диалоговом окне. Если выбрано Включить имя файла входного изображения, приложение будет включать имя изображения, связанного с результатами в структуре или таблице. После указания сведений об экспорте нажмите кнопку «ОК».
Чтобы получить код MATLAB ®, который приложение использовало для обработки файлов, на панели инструментов приложения щелкните Экспорт и выберите функцию Создать. Приложение создает функцию, которая принимает имя входной папки и имя выходной папки в качестве входных аргументов. По умолчанию функция возвращает таблицу с результатами, но вместо нее можно выбрать структуру. Для результатов изображения можно указать формат файла и необходимость записи изображения функцией в указанную папку вывода .