Автор: Пользователь скрыл имя, 27 Мая 2014 в 10:17, лабораторная работа
Цель работы: ознакомиться с принципами работы информационных систем диагностики и распознавания образов, выявить достоинства и недостатки реализации информационных систем на основе системы MatLAB, а также аналогичных пакетов прикладных программ.
Исследование принципов функционирования информационных систем распознавания
Вариант №18
По курсу
Теория информационных процессов и систем
Цель работы: ознакомиться с принципами работы информационных систем диагностики и распознавания образов, выявить достоинства и недостатки реализации информационных систем на основе системы MatLAB, а также аналогичных пакетов прикладных программ.
В варианте заданы геометрические фигуры, разделяющие плоскость на подобласти (образы) различной конфигурации. Требуется написать программу, определяющую, в какую область на рисунке попала точка с произвольно заданными координатами. Координаты точки вводятся с клавиатуры, а по результатам работы программы должна указываться область, которой принадлежит введенная точка. Для этого необходимо выполнить:
1. На заданном по варианту
рисунке пронумеруйте все
2. Аналитически опишите границы областей, задав произвольно начало координат.
3. Составьте блок-схему программы, при этом дополнительное условие состоит в том, что в каждом операторе If можно работать только с одной геометрической фигурой .
3. Напишите программу в соответст
Отчет по работе должен содержать:
¨ цель работы;
¨ вариант задания;
¨ блок-схему и листинг программы;
¨ выводы по проделанной работе: достоинства и недостатки информационных систем распознавания, основанных на идентификации аналитически заданных образов, оценить рост сложности примененного подхода к распознаванию по мере роста числа образов; возможности MatLAB по реализации подобных систем.
Одной из важнейших функций большинства информационных систем является распознавание образов, причем под образом понимают самые разнообразные объекты. Так, для систем медицинской диагностики образом может быть заболевание, а сам процесс распознавания соответствует постановке диагноза больному; в технической диагностике образ – неисправный блок или элемент, а распознавание – выявление и устранение причин неисправностей; в поисковых информационных системах образ – заданная маска поиска, распознавание – отыскание информации по маске и т.д. И конечно, это всевозможные информационные системы технического зрения, которыми оснащаются автоматические подвижные объекты, системы слежения, системы для исследования морского дна.
Задача описания самих образов является довольно сложной и самостоятельной проблемой, так как невозможно провести по известным свойствам и признакам четкую границу между двумя образами (многие заболевания зачастую имеют одинаковые симптомы) или их граница представляет собой очень сложную функцию с перегибами и разрывами (поиск затонувших объектов на морском дне, которые частично заилены). В данной работе указанная задача выявления образов не рассматривается, считаем, что образы ранее получены и имеют границы, заданные в виде функций на плоскости. Требуется по вводимым с клавиатуры координатам точки определить, какой области (то есть образу) она принадлежит. Общий подход при распознавании заключается в последовательном переборе и проверке всех образов на полное соответствие заданной маске или запросу (в нашем случае координатам точки) поиска.
В качестве программной среды реализации предлагается использовать MatLAB. Ниже приведены краткие сведения по использованию системы.
Запустите MATLAB, при этом откроется рабочее окно программы. Подсказка «>>» показывает готовность системы к выполнению Ваших команд. Набрав простейшие математические выражения в естественной форме записи, Вы сразу же получаете результат. Это выражение может быть записано в двух видах: <Выражение> или <Имя переменной>=<Выражение>. Во втором случае результат не только вычисляется, но и присваивается указанной переменой. MATLAB не требует от пользователя специальных команд для объявления переменных, они создаются автоматически при первом указании пользователем их имени. В первом случае на самом деле результат выражения присваивается специальной служебной переменной имеющей имя ans, Вы также можете использовать эту переменную в расчетах. Если Вы не хотите, чтобы MATLAB выводил результаты промежуточных выражений на экран, то Вам необходимо поставить в конце выражения символ «;».
При наборе и редактировании команд действуют такие же команды, как в любом другом оконном редакторе Windows, например, в блокноте MATLAB предоставляет пользователю возможность пролистать предыдущие команды, сделать это можно с помощью клавиш стрелка вверх и вниз. Вы легко можете внести изменения в эти команды и повторно их выполнить.
Ход выполнения работы.
Для заданного варианта #18 окружность, два прямоугольника и прямая разбивают плоскость на 9 областей (образов), включая и внешнюю бесконечную полуплоскость, очевидно, что признаком распознавания, по которому следует относить произвольные объекты к тому или иному образу, в данном случае служат координаты (х, у). Пронумеруем полученные образы, как это показано на рис.1 . Для реализации процедуры распознавания следует аналитически описать границы областей, сравнивая с которыми координаты объекта, можно отнести его к соответствующей части плоскости (образу). В нашем случае имеется 4 геометрические фигуры:
Рис.1 – Разбиение геометрических фигур на области.
- прямая, уравнение которой
В нашем случае уравнение прямой имеет вид y=(10/9)*x+3;
- окружность, уравнение которой
аналитически записывается как
(x-2.5)2+(y-9.5)2=2.25;
- прямоугольник 1, который можно задать совокупностью четырех отрезков прямых: x 1= 5; x2 = 9, y1 1= 2, y2 = 13.
- прямоугольник 2, который можно задать совокупностью четырех отрезков прямых: x 3= 0.5; x4 = 7.5, y3 = 5, y4 = 12.
Листинг программы определения попадания точки в область на Pascal:
program one;
uses crt;
var x,y:real;
begin
clrscr;
writeln (введите x,y');
readln (x,y);
if (y>(10/9)*x+3) then
begin
if ((x>4) and (x<9) and (y>2) and (y<13)) then
begin
if ((x>0.5) and (x<7.5) and (y>5) and (y<12)) then
writeln ('#5')
else
writeln ('#6');
end
else
if ((x>0.5) and (x<7.5) and (y>5) and (y<12)) then
begin
if (((x-2.5)*(x-2.5))+((y-9.5)*(
writeln ('#3')
else
writeln ('#4');
end
else
writeln ('#2');
end
else
if ((x>4) and (x<9) and (y>2) and (y<13)) then
begin
if ((x>0.5) and (x<7.5) and (y>5) and (y<12)) then
writeln ('#8')
else
writeln ('#9');
end
else
begin
if ((x>0.5) and (x<7.5) and (y>5) and (y<12)) then
writeln ('#7')
else
writeln ('#1');
end;
readln;
end.
Вывод: Основным достоинством информационных систем распознавания, основанных на идентификации аналитически заданных образов является возможность получения математического решения и получения алгоритма, для решения задачи. Недостатком является то что далеко не всякий образ можно описать аналитически, т.е. данный метод подходит не для всех задач по распознаванию образов, так же недостатком является резкий рост сложности алгоритма с увеличением числа образов. С увеличением числа образов, резко растёт число областей разбиения, и соответственно усложняется описание каждой области.
Возможности MatLAB для решения данной задачи весьма широки, он позволяет выводить один или несколько графиков функций, так же выводить трёхмерные графики. Так же позволяет находить решения при помощи функции fsolve. Позволяет работать с различными матрицами и массивами и выполнять действия над ними.
Информация о работе Исследование принципов функционирования информационных систем распознавания