В этом примере показано, как использовать приложение Image Batch Processor, чтобы обработать группу изображений в той же папке.
Создайте новую папку в области, где вы имеете разрешение записи и копируете набор 10 изображений от imdata
Image Processing Toolbox папка в новую папку.
mkdir('cellprocessing'); copyfile(fullfile(matlabroot,'toolbox','images','imdata','AT3*.tif'),'cellprocessing','f');
Откройте приложение Image Batch Processor от панели инструментов MATLAB®. На вкладке Apps, в разделе Image Processing и Computer Vision, нажимают Image Batch Processor.
Загрузите изображения в приложение. В панели инструментов приложения нажмите Load Images. В диалоговом окне Load Images from Folder задайте папку, содержащую изображения, которые вы хотите загрузить. В данном примере задайте папку, которую вы создали в первом шаге, cellprocessing
. По умолчанию приложение включает изображения в подпапки. Чтобы изменить это поведение, ясное, Включают изображения в подпапки. Затем нажмите Load.
Приложение Image Batch Processor создает миниатюры изображений в папке и отображает их во вкладке с возможностью прокрутки на левой панели. Отображения приложения первое выбранное изображение (подсвеченный в синем) в большем разрешении во вкладке Input Image на правой панели.
Задайте имя функции, которое вы хотите использовать, чтобы обработать изображения в папке. Чтобы задать существующую функцию, введите имя в Function Name, окружают раздел Batch Function панели инструментов приложения. Можно также кликнуть по значку папки рядом с полем, чтобы просмотреть и выбрать функцию. Чтобы создать новую функцию пакетной обработки данных, нажмите New в разделе Batch Function панели инструментов приложения. Когда вы делаете это, приложение открывает шаблон функции пакетной обработки данных в Редакторе MATLAB®. В данном примере нажмите New, чтобы создать новую функцию.
В шаблоне функции пакетной обработки данных введите код для новой функции в пробел, зарезервированный в файле шаблона, и нажмите Save. Этот пример использует имя по умолчанию для функции пакетной обработки данных, 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
Сохраните файл. После сохранения, отображения приложения имя этой новой функции в поле Function Name на панели инструментов приложения.
Протестируйте новую функцию путем выполнения пакетного процессора на одном из изображений. С одним выбранным изображением (подсвеченный в синем), нажмите Process Selected, чтобы обработать выбранное изображение. Отображения приложения результаты обработки в новой вкладке под названием Результаты. В данном примере отображения приложения бинарная маска, количество количества объектов (ячейки) в изображении и пороговая версия изображения.
Чтобы получить более близкое представление результатов изображений, нажмите Show для того конкретного результата во вкладке Results. Приложение, открытое большая версия разрешения изображения в новой вкладке в центральной нижней частью панели. В данном примере просмотрите бинарные результаты маски нажатие по Show for bw
во вкладке Results. Чтобы исследовать результаты, переместите курсор через изображение, чтобы получить доступ к панорамированию и средствам управления изменением масштаба. При изменении масштаба и панорамировании, приложение соединяет изображение результата с оригинальным изображением — панорамирование или изменение масштаба на одном изображении заставляют другое изображение перемещаться также. Если вы не хотите это поведение, очистите Оси Ссылки в панели инструментов приложения.
Если результаты тестового прогона на одном изображении успешны, то выполните функцию на всех изображениях в папке. Чтобы обработать все изображения целиком, на панели инструментов приложения, нажимают Process Selected и выбирают Process All. Чтобы обработать только подмножество изображений, нажмите Process Selected. Можно выбрать изображения, чтобы обработать или путем нажатия Ctrl и нажимания на желаемые изображения или путем нажимания на одно изображение, чтобы запуститься, нажатия Shift и нажимания на другое изображение, чтобы выбрать все изображения, промежуточные запуск и окончание изображений. Если у вас есть Parallel Computing Toolbox™, можно нажать Use Parallel на панели инструментов приложения, чтобы обработать изображения на локальном параллельном пуле. В данном примере процесс все изображения.
Процессы приложения все изображения в заданной папке. Заполненный - в зеленом квадрате рядом с миниатюрой указывает, что приложение успешно обработало то изображение. Вкладка Results содержит результаты выбранного изображения (подсвеченный в синем). Строка состояния в правом нижнем углу приложения сообщает относительно количества обработанных изображений.
Чтобы сохранить результаты, нажмите Export, чтобы просмотреть доступные опции. Можно экспортировать результаты в рабочую область или в файл, или можно добраться, MATLAB® кодируют приложение, используемое, чтобы сгенерировать результаты.
Сохраните результаты в переменной рабочей области. На панели инструментов приложения нажмите Export и выберите результат Export всех обработанных изображений к опции рабочей области. В диалоговом окне, которое открывается, выберите результаты, которые вы хотите экспортировать. Общий подход должен экспортировать результаты неизображений в рабочую область и сохранить образы, которые следуют из обработки в файлах. Этот пример сохраняет количество клеток наряду с именем входного файла к переменной numCells
рабочей области.
По умолчанию приложение возвращает результаты, которые вы выбираете в таблице под названием allresults
. Чтобы сохранить результаты в структуре вместо таблицы, выберите Struct Array в Выбрать разделе формата диалогового окна. Чтобы задать другое имя для переменной результата, поменяйте Имя переменной в диалоговом окне. Если вы выбираете имя файла образа входа Include, приложение включает имя изображения, сопоставленного результатами в структуре или таблице. После определения деталей экспорта нажать ОК.
Получить код MATLAB®, что приложение, используемое, чтобы обработать ваши файлы, на панели инструментов приложения, нажимает Export и выбирает функцию Generate. Приложение генерирует функцию, которая принимает входное имя папки и выходное имя папки как входные параметры. По умолчанию функция возвращает таблицу результатами, но можно выбрать структуру вместо этого. Для результатов изображений можно задать формат файла и хотите ли вы, чтобы функция записала изображение в заданную выходную папку.