В этом примере показано, как использовать приложение Image Batch Processor, чтобы обработать группу изображений в той же папке. Операция пакетной обработки данных обычно выполняет эти шаги.
Открытый Image Batch Processor App — Выбор значок приложения из галереи Apps, или открытый это из командной строки.
Загрузите Изображения в Image Batch Processor App — Задают имя папки, содержащей файлы изображений. Приложение может получить изображения из подпапок также, сохранив иерархическую структуру папок.
Укажите, что Функция Пакетной обработки данных — Предоставляет приложению функцию, которую вы хотите, применился ко всем изображениям в папке. Можно задать имя существующей функции или создать новую функцию с помощью шаблона функции пакетной обработки данных.
Выполните Операцию на Изображениях — Обрабатывают группу изображений. Можно обработать все файлы в папке или выбрать файлы к процессу. Отображения приложения результаты во вкладке Results.
Получите Результаты Операции Пакетной обработки данных — можно сохранить результаты в переменную в рабочей области или, для результатов изображений, файлов. Можно также получить код MATLAB®, что приложение раньше генерировало результаты.
Эта часть примера показывает, как открыть приложение Image Batch Processor.
От Панели инструментов MATLAB, на вкладке Apps, в группе Обработки изображений и Компьютерного зрения, нажимают Image Batch Processor
. Можно также открыть приложение в командной строке с помощью imageBatchProcessor
команда. (Если у вас есть Parallel Computing Toolbox™, приложение включает кнопку Use Parallel.)
imageBatchProcessor
Эта часть примера показывает, как загрузить изображения в приложение Image Batch Processor.
В данном примере создайте новую папку в области, где вы имеете разрешение записи и загружаете набор 10 изображений от imdata
Image Processing Toolbox™ папка.
mkdir('cellprocessing'); copyfile(fullfile(matlabroot,'toolbox','images','imdata','AT3*.tif'),'cellprocessing');
Нажмите Load Images и задайте папку, содержащую изображения, которые вы хотите обработать в диалоговом окне Load Images from Folder. В данном примере задайте папку, которую вы создали в первом шаге, cellprocessing
, и затем нажмите Load. По умолчанию приложение включает изображения в подпапки. Чтобы изменить это поведение, снимите флажок Include images in subfolders.
Приложение Image Batch Processor создает миниатюры изображений в папке и отображает их в панели с возможностью прокрутки. Отображения приложения первое выбранное изображение в большем разрешении во Входной панели Изображений.
Эта часть примера показывает, как задать функцию, которую вы хотите выполнить на всех изображениях.
Задайте имя функции, которое вы хотите использовать, чтобы обработать изображения в папке. Чтобы задать существующую функцию, введите ее имя в поле Function name или кликните по значку папки, чтобы просмотреть и выбрать функцию. Чтобы создать новую функцию пакетной обработки данных, нажмите New. Приложение открывает шаблон функции пакетной обработки данных в редакторе MATLAB. Этот пример создает новое функциональное нажатие кнопки New.
Отредактируйте шаблон функции пакетной обработки данных, открытый в редакторе MATLAB. Вставьте свой код в пробел, зарезервированный в файле шаблона, и нажмите 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;
Когда вы сохранили файл, отображения приложения имя вашей новой функции в поле Function name.
Эта часть примера показывает, как обработать все изображения в папке (или подмножество изображений) в одной операции.
Запустите пакетный процессор на одном из ваших изображений как тест вашей функции. Может быть полезно испытать вашу функцию пакетной обработки данных на одном из изображений и проверять результаты прежде, чем запустить его на всех изображениях. Когда вам удовлетворяют, что функция работает правильно, запустите функцию на всех изображениях в папке. С одним выбранным изображением нажмите Process Selected, чтобы обработать выбранное изображение.
Исследуйте результаты тестового прогона. Отображения приложения результаты обработки в новой вкладке под названием Results. В данном примере отображения приложения бинарная маска, количество количества объектов (ячейки) в изображении и пороговая версия изображения. Чтобы получить более близкое представление результатов изображений, нажмите Show. Приложение, открытое большая версия разрешения изображения в другой вкладке. Можно использовать изменение масштаба и опции панорамирования, чтобы исследовать изображение. При изменении масштаба и панорамировании, приложение соединяет изображение результата с оригинальным изображением — перемещение или изменение масштаба на, каждый заставляет другое изображение перемещаться.
Если результаты тестового прогона успешны, выполните функцию на всех изображениях в вашей входной папке. Кликните по меню дополнительных опций на кнопке Process Selected и выберите Process All. Можно также выбрать повторные изображения к процессу с помощью или Ctrl-Click или Shift-Click. Если у вас есть Parallel Computing Toolbox, можно нажать Use Parallel, чтобы обработать изображения на локальном параллельном пуле.
Процессы приложения все изображения в заданной папке, заполняя квадрат рядом с миниатюрой называют с зеленым. Вкладка Results содержит результаты выбранного изображения.
Эта часть примера показывает, как получить результаты операции пакетной обработки данных
Нажмите Export, чтобы просмотреть доступные опции. Можно экспортировать результаты в рабочую область или в файл, или можно получить код MATLAB, приложение раньше генерировало результаты.
Выберите опцию theExport result of all processed images to workspace, чтобы сохранить результаты в переменной рабочей области. Выберите результаты, вы хотите сохранить, и нажать OK. Общий подход должен сохранить результаты неизображений в рабочую область и сохранить образы, которые следуют из обработки в файлах. Пример сохраняет количество клеток наряду с именем входного файла к переменной numCells
рабочей области.
По умолчанию приложение возвращает результаты, которые вы выбираете в таблице под названием allresults
. Можно задать другое имя, и можно также принять решение сохранить результаты в структуре вместо этого. Если вы выбираете Include input image file name, приложение включает имя изображения, сопоставленного с результатами.
numCells fileName ________ _____________________________________________ 7 'C:\cellprocessing\cellimages\AT3_1m4_10.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_01.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_02.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_03.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_04.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_05.tif' 6 'C:\cellprocessing\cellimages\AT3_1m4_06.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_07.tif' 9 'C:\cellprocessing\cellimages\AT3_1m4_08.tif' 7 'C:\cellprocessing\cellimages\AT3_1m4_09.tif'
Выберите опцию the Export result of all processed images to files, чтобы сохранить образы, произведенные пакетной обработкой данных. Выберите формат файла для каждого возвращенного файла и нажмите OK. По умолчанию приложение хранит файлы в той же папке, которую вы задали, когда вы загрузили свои изображения, но можно задать другую папку.
Вот то, на что папка похожа после сохранения результатов в файлах.
06/19/2005 10:06 PM 310,202 AT3_1m4_01.tif 12/12/2015 11:22 AM 3,822 AT3_1m4_01_bw.tif 12/12/2015 11:22 AM 929,544 AT3_1m4_01_thresholdMask.tif 06/19/2005 10:06 PM 310,434 AT3_1m4_02.tif 12/12/2015 11:22 AM 3,840 AT3_1m4_02_bw.tif 12/12/2015 11:22 AM 929,550 AT3_1m4_02_thresholdMask.tif 06/19/2005 10:06 PM 310,314 AT3_1m4_03.tif 12/12/2015 11:22 AM 3,756 AT3_1m4_03_bw.tif 12/12/2015 11:22 AM 929,508 AT3_1m4_03_thresholdMask.tif 06/19/2005 10:06 PM 310,336 AT3_1m4_04.tif 12/12/2015 11:22 AM 3,806 AT3_1m4_04_bw.tif 12/12/2015 11:22 AM 929,512 AT3_1m4_04_thresholdMask.tif 06/19/2005 10:06 PM 310,378 AT3_1m4_05.tif 12/12/2015 11:22 AM 3,744 AT3_1m4_05_bw.tif 12/12/2015 11:22 AM 929,518 AT3_1m4_05_thresholdMask.tif 06/19/2005 10:06 PM 310,342 AT3_1m4_06.tif 12/12/2015 11:22 AM 3,730 AT3_1m4_06_bw.tif 12/12/2015 11:22 AM 929,538 AT3_1m4_06_thresholdMask.tif 06/19/2005 10:06 PM 310,352 AT3_1m4_07.tif 12/12/2015 11:22 AM 3,756 AT3_1m4_07_bw.tif 12/12/2015 11:22 AM 929,532 AT3_1m4_07_thresholdMask.tif 06/19/2005 10:06 PM 310,364 AT3_1m4_08.tif 12/12/2015 11:22 AM 3,746 AT3_1m4_08_bw.tif 12/12/2015 11:22 AM 929,482 AT3_1m4_08_thresholdMask.tif 06/19/2005 10:06 PM 310,266 AT3_1m4_09.tif 12/12/2015 11:22 AM 3,732 AT3_1m4_09_bw.tif 12/12/2015 11:22 AM 929,500 AT3_1m4_09_thresholdMask.tif 06/19/2005 10:06 PM 310,288 AT3_1m4_10.tif 12/12/2015 11:22 AM 3,718 AT3_1m4_10_bw.tif 12/12/2015 11:22 AM 929,504 AT3_1m4_10_thresholdMask.tif
Выберите опцию the Generate function, чтобы получить код MATLAB, приложение раньше обрабатывало ваши файлы. Приложение генерирует функцию, которая принимает входное имя папки и выходное имя папки как входные параметры. По умолчанию функция возвращает таблицу с результатами, но можно выбрать структуру вместо этого. Для результатов изображений можно задать формат файла и хотите ли вы, чтобы функция записала изображение в заданную выходную папку. Чтобы получить код, нажмите OK.