- •Детектор листьев
- •Описание процесса работы над проектом
- •Теоретическая часть
- •Биологическая часть
- •Математическая теория
- •Matlab, основные функции
- •Ход работы
- •Реализация дерева вариантов
- •Работа с изображением
- •Разработка алгоритмов
- •Разработка программы
- •База данных
- •1.3 Анализ хода работы
- •Анализ полученного проекта
- •Характеристики полученного проекта
- •Перспективы развития проекта
- •Приложение 1
- •Код программы «Детектор листьев»
Математическая теория
В данном проекте при анализе программой изображения листа используется принцип математических деревьев.
Дерево выбора — средство поддержки принятия решений, использующееся в статистике и анализе данных для прогнозных моделей. Структура де- рева представляет собой «листья» и «ветки». На ребрах («ветках») дерева решения записаны атрибуты, от которых зависит целевая функция, в «листьях» записаны значения целевой функции, а в остальных узлах — атрибуты, по которым различаются случаи. Подобные деревья решений широко используются в интеллектуальном анализе данных. Цель состоит в том, чтобы создать модель, которая предсказывает значение целевой переменной на основе нескольких переменных на входе. Также необходимой теорией для успешной реализации проекта являются тригонометрические функции и обратные им. В прямоугольном треугольнике ABC для угла α (рисунок 3) определено:
Рисунок 3 – Прямоугольный треугольник ABC
Matlab, основные функции
В коде использовались следующие функции:
if: оператор «если». Если значение параметра «выражение» соот- ветствует значению «истинно», то выполняется оператор, иначе он пропускается программой.
if <выражение>
<операторы> end
for: оператор цикла. Позволяет проще и нагляднее реализовывать цикл, в котором требуется перебирать значение счетчика в заданном диапазоне значений и с заданным шагом изменения. Если шаг изменения не задан, то он автоматически равен единице.
for <счетчик> = <начальное значение>:<конечное значение>
<операторы цикла>
end
imread: функции чтения изображений, представленных в форматах bmp, png, gif, jpeg, tif.
Picturename = imread(‘filename’);
imshow: функции вывода изображений.
imshow(Picturename);
imresize: функция, которая создает новое изображение, изменяя размеры исходного изображения любого типа (в представленной программе использовался автоматический подбор новой ширины изображения).
Newimage = imresize(Oldimage [hight Nan]);
axis on: автоматическая вставка осей координат.
axis on;
round: функция возвращает значения, округленные до ближайшего целого.
Y = round(X)
atand: возвращает арктангенс (для действительных чисел возвращает значения в диапазоне от –π/2 до π/2).
Y = atand(X);
im2bw: функция создает бинарное изображение, используя отсечение по порогу яркости. Пикселы результирующего бинарного изображения принимают значения 0 (черный цвет), если яркость соответствующих пикселов исходного изображения меньше порога threshold, и значения 1 (белый цвет), если яркость соответствующих пикселов исходного изображения больше либо равна threshold. Порог threshold должен задаваться в диапазоне [0, 1]. Result = im2bw(Picture, threshold);
