Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 10 (2).doc
Скачиваний:
36
Добавлен:
30.04.2015
Размер:
5.52 Mб
Скачать

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

j,l суммирует значения T и R по параметрам j и l, которые задают разбиение на сегменты. Kj,l - отражает распределение плотности линий в сегментах разбиения (рис. 17). Для наглядности строится трехмерный график(рис. 18).