- •Содержание
- •Глава 1. Обзор систем распознавания форм
- •1.2.Классификация систем распознавания
- •Глава 2. Разработка системы распознавания формы микрообъектов
- •2.1. Проблема разработки автоматических систем оценки результата кристаллогенеза
- •2.2. Разработка алгоритма распознавания линий и расчет их радиальных и тангенциальных составляющих
- •2.3. Реализация алгоритма в программной среде
- •Глава 3. Исследование характеристик системы распознавания формы микрообъектов
- •3.1. Тестирование системы распознавания формы микрообъектов
- •3.2. Анализ и интерпретация результатов тестирования
2.3. Реализация алгоритма в программной среде
Для реализации алгоритма было выбрано две программные среды MATLAB для предварительной обработки и Matcad для реализации процесса распознавания.
MATLAB (сокращение от англ. «Matrix Laboratory») — пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете.
Image Processing Toolbox — библиотека функций для MATLAB, позволяющих решать широкий спектр задач обработки изображений.
Mathcad — система компьютерной алгебры из класса систем автоматизированного проектирования, ориентированная на подготовку интерактивных документов с вычислениями и визуальным сопровождением.
Вид рабочего пространства MATLAB (рис. 9)
1 – Окно файлового менеджера
2 – Командное окно
3 – «Рабочее место» отображает все файлы используемые выполняемым алгоритмом
4 – История выполненных команд
5 – Меню и доступ к дополнительным функциям
Код алгоритма предварительной обработки реализованный в MATLAB:
I = imread('1.jpg');
threshold=graythresh(I);
Ib=im2bw(I, threshold);
Ir=retinex_frankle_mccann(Ib, 2);
H=fspecial('gaussian', 5, 0.7);
If=filter2(H, Ib);
Ik = edge(If, ‘canny’);
In = max(Ik(:))-Ik;
I2=bwmorph(In, 'thicken', 5);
I3=bwmorph(I2, 'close', 2);
imshow(I4)
Пошагово разберем этап выполнения кода
%считывание изображения
I = imread('1.jpg');
%вычислени глобального порога
threshold=graythresh(I);
%преобразование изображения в полутоновое
Ib=im2bw(I, threshold);
%выравнивание освещения
Ir=retinex_frankle_mccann(Ib, 2);
%создание фильтра Гаусса
H=fspecial('gaussian', 5, 0.7);
%фильтрация с заданным фильтром
If=filter2(H, Ib);
%выделение границ методом Канни
Ik = edge(If, ‘canny’);
%инвертирование цветов изображения
In = max(Ik(:))-Ik;
%морфологическая операция "утолщение"
I2=bwmorph(In, 'thicken', 5);
%морфологическая операция "закрытие"
I3=bwmorph(I2, 'close', 2);
%морфологическая операция "утоньшение"
I4=bwmorph(I3, 'thin', 7);
%вывод изображения
imshow(I4)
Изображение, подаваемое на вход (рис. 10) и после обработки (рис. 11).
Вид рабочего пространства Mathcad (рис.12)
1 - Меню и доступ к дополнительным функциям
2 – Рабочее пространство для ввода кода
3 – Панель инструментов
Реализация алгоритма распознавания линий и расчет их радиальных и тангенциальных составляющих в Mathcad.
Функция READBMP производит считывание обработанного изображения. Функция Rad выполняет распознавание линии и рассчитывает её радиальную проекцию по всему изображению. Значению R присваивается сумма всех радиальных проекций в пределах заданного сегмента. График R отражает количество радиальных проекций по сегментам (см. рис. 13).
Функция fr высчитывает распределение амплитуд функции Rad (см. рис. 14).
Функция Tan выполняет распознавание линии и рассчитывает их тангенциальные проекции по всему изображению. Значению T присваивается сумма всех тангенциальных проекций в пределах заданного сегмента. Построены графики Tan и T (см. рис. 15).
Функция ft, аналогично функции fr расчитывает распределение амплдитуд функции Tan (см. рис. 16)
K
Рис. 16