Исследование систем управления манипулятором MR-999Е

Исследование методов обработки информации в системах технического зрения роботов. Описания искусственных нейронных сетей и их использования при идентификации изображений. Определение порогового уровня изображений, техники обработки визуальной информации.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид магистерская работа
Язык русский
Дата добавления 08.03.2012
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В лаборатории располагаются 3 рабочих места. Площадь лаборатории - 120 м2, объем - 360 м3. Соответственно, площадь, выделенная на 1 рабочее место составляет не менее 6 м2 и объем составляет не менее 20 м3.

Согласно ГОСТ 12.1.005-88, ДСН 3.3.6-042-99 работа в зале с ПК по категории работ относится к легким (категория Iа - легкие физические работы с энергозатратами до 139 Вт или 120 ккал/ч). Работа производятся сидя, не требует систематического физического напряжения и перемещения тяжестей.

Анализируя выявленные в лаборатории ОВПФ можно сказать, что рабочее место относится к III классу 1 степени вредности. Доминирующим вредным фактором является повышенная температура воздуха рабочей зоны (на 3?С больше, чем норма, установленная ГОСТ 12.1.005-88 «Система стандартов безопасности труда. Общие санитарно-гигиенические требования к воздуху рабочей зоны», равная 22-28?С).

В рабочей зоне помещения согласно ГОСТ 12.1.005-88 могут быть установлены оптимальные (сочетание параметров микроклимата) или допустимые микроклиматические условия.

В санитарных нормах ДСП 173-96 установлены величины параметров микроклимата, создающие комфортные условия (таблица 5.3). Параметры устанавливаются в зависимости от времени года, характера трудового процесса и характера производственного помещения. Нормы подачи свежего воздуха в помещения, где расположены компьютеры, приведены в таблице 5.4.

Таблица 5.3 - Параметры микроклимата для помещений, где установлены компьютеры

Период года

Параметры микроклимата

Величина

Теплый

Температура воздуха в помещении

Относительная влажность

Скорость движения воздуха

22-24 ?С

40-60 %

До 0.1 м\с

Холодный

Температура воздуха в помещении

Относительная влажность

Скорость движения воздуха

23-25 ?С

40-60 %

0.1-0.2 м\с

Таблица 5.4 - Нормы подачи свежего воздуха в помещения, где расположены компьютеры

Характеристика помещения

Объемный расход подаваемого в помещение свежего воздуха м3 на человека в час

Объём до 20 м3 на человека

Не менее 30

20-40 м3 на человека

Не менее 20

Таким образом, необходимо разработать систему кондиционирования.

Согласно СНиП 2.0Д.05-91 (таблица Д.4), если объем помещения, приходящийся на одного человека, меньше 20 м3, то количество приточного воздуха, необходимого для проветривания, должно быть не менее G1 = 30 м3/час на каждого работающего; при объеме помещения более 20 м3 на одного работающего количество приточного воздуха для проветривания должно быть не менее G1 = 20 м3/час на каждого работающего. Найдем объем помещения, приходящийся на одного человека:

V=360 м3; n = 3 человек

V=360 ? 3 = 120 м3 (5.1)

Поскольку V1> 20 м3/чел, то тогда норма подачи приточного воздуха на 1 человека G1 = 20 м3/час. Количество приточного воздуха с учетом того, что в помещении работает 3 человека (м3/час) рассчитывается по формуле:

(5.2)

Произведем расчет воздухообмена по избыткам тепла. Для этого определим поступления тепла в помещение по формуле:

(5.3)

где - выделение тепла от оборудования;

- выделение тепла от людей;

- выделение тепла от приборов освещения;

- поступление тепла через наружные ограждения конструкций от солнечной радиации;

Найдем выделение тепла при работе оборудования:

(5.4)

где P = 3 кВт - суммарная мощность оборудования;

к1 = 0.8 - коэффициент использования установленной мощности;

к2 = 1 - коэффициент одновременности работы оборудования.

Найдем выделение тепла от людей по формуле:

,(5.5)

где - количество работающих мужчин в помещении;

- количество тепла, выделяемого одним мужчиной;

- количество работающих женщин в помещении;

- количество тепла, выделяемого одной женщин;

Используя табл. 9 пособия 2.91 к СНиП 2.0Д.05-91 находим количество тепла, выделяемого одним мужчиной при 30?С при выполнении легкой физической работы - qм = 146 Вт. Т.о. получаем:

В помещении имеются 8 осветительных прибора по 100 Вт каждый. Найдем выделение тепла от освещения. Таким образом:

Величина рассчитаем по формуле:

(5.6)

где Всз - коэффициент теплопропускания солнцезащитных устройств;

F1, F2 - площади световых проемов, освещаемых солнцем и находящихся в тени, м2; q1, q2 - количество тепла, поступающего в помещение в июле, через остекление светового проема, Вт/м2, в расчетный час суток для освещенной части и части, находящейся в тени;

Считаем, что световые проемы не затенены, значение F2 принимаем равным нулю.

Значения q1 и q2 (СНиП II-33-75):

(5.7)

(5.8)

k1 - коэффициент, учитывающий затенение остекления и загрязнения атмосферы;

k2 - коэффициент, учитывающий загрязнение стекла;

qп - количество тепла от прямой солнечной радиации;

qр - количество тепла от рассеянной солнечной радиации.

Значения прямой и рассеянной солнечной радиации qвп, qвр из таблицы 5.5.

Таблица 5.5 - Значения прямой и рассеянной солнечной радиации

Географическая широта

qп

qр

48

427

112

52

448

114

qп = (427+ 448)/2 = 437.5 Вт

qр = (112+ 114)/2 = 113 Вт

Всз = 0.15 для штор из светлой ткани (СНиП II-3-79);

F1 = 12 м2;

k1 = 0.45 для остекления в двойных деревянных переплетах, с учетом загрязнения атмосферы, промышленного района и географической широты (СНиП 2.0Д.05-86);

k2 = 0.95 для незначительного загрязнения вертикального остекления (СНиП 2.0Д.05-86).

Таким образом, рассчитаем количество тепла от солнечной радиации:

Определим поступление тепла в помещение по формуле Д.3:

Произведем расчет воздухообмена по избыткам тепла в лаборатории по формуле:

(5.9)

где 3600 - коэффициент для перевода м3/с в м3/час;

с=1.2 кг/м3 - плотность воздуха;

tуд - температура удаляемого воздуха;

tпр - температура приточного воздуха;

Разница температур приточного и удаляемого воздуха находится в пределах 5-8?С.

Рассчитаем воздухообмен по избыткам тепла в лаборатории:

Таким образом, для поддержания установочных параметров микроклимата лаборатории достаточно подавать 247,055м3/час воздуха.

Раздача обработанного воздуха в помещении осуществляется по воздуховодам через потолочные диффузоры (рисунок Д.3.). Количество воздуха распределяется по помещению, пропорционально выделяемому теплу.

Рабочее место организовано в соответствии с требованиями ГОСТ 12.2.032-78 и ДСанПиН 3.3.2.007-98. Конструкция рабочего места и взаимное расположение всех его элементов соответствуют антропометрическим, физиологическим и психологическим требованиям, а также характеру работы. Учитывая вредность работы и нагрузку, установлен восьми часовой рабочий день. Рабочая неделя состоит из 5 дней.

Рисунок 5.3 - Схема системы кондиционирования

На рисунке 5.4 показано размещение рабочих мест и оборудования в данной лаборатории.

Рисунок 5.4 - Схема размещения рабочих мест и маршрут эвакуации при пожаре

5.4 Пожарная профилактика лаборатории исследовательского бюро

Согласно СНиП 2.09.02-85 помещение лаборатории, в котором расположен персонал, имеет категорию пожарной опасности. Оно, согласно СНиП 2.01.02-85 имеет II степень огнестойкости. По пожароопасности данное помещение классифицируется как помещение класса П-IIа по ПУЭ, так как это помещение в котором имеется мебель из дерева и ДВП. Горючими компонентами в лаборатории являются: строительные материалы для акустической и эстетической отделки помещений, перегородки, двери, полы, изоляция кабелей и др.

В соответствии с ГОСТ 12.1.004-91 пожарная безопасность объекта обеспечивается: система предотвращения пожара, системы противопожарной защиты. Предотвращение пожара обеспечивается: максимально возможным применением негорючих и трудно-горючих веществ в помещении; применением в электрооборудовании быстродействующих средств защитного отключения возможных источников зажигания; устройством молниезащиты здания.

Противопожарная защита обеспечивается: 1) применением средств пожаротушения и соответствующих видов пожарной техники; углекислотные огнетушители ОУ-2-7 шт (из расчета 2 огнетушителя на 20 м2); эти огнетушители предназначены для тушения электроустановок находящегося под напряжением; 2) применение автоматической установки пожарной сигнализации, а именно использование 7-ми автоматических дымовых пожарных извещателя ИП-105.01 (1 извещатель располагается на 20м2). Они располагаются под потолком в помещения и собраны на основе магнитоуправляемого герметизированного контакта (геркона), что позволяет быстро реагировать на появления дыма; 3) телефон установленный в легкодоступном месте; 4)ящик с песком V = 0,15 м3; 5) организации эвакуации людей (эвакуация организовывается согласно СНиП 2.01.02-85); схема эвакуации представлена на рисунке 5.4.

ВЫВОДЫ

В данной магистерской аттестационной работе основное внимание уделено рассмотрению методов распознавания и идентификации объектов в системах технического зрения роботов.

В первой части магистерской аттестационной работы были проанализированы методы обработки информации в системах технического зрения роботов. Процесс идентификации объектов, находящихся в рабочей зоне робота, включает два этапа, такие как выделение характерных признаков объектов и распознавание объектов по найденной совокупности характерных признаков. Основными методами обработки информации являются сегментация (процесс подразделения сцены на составляющие части или объекты), определение порогового уровня, областно-ориентированная сегментация, дескрипторы границ и областей изображений, описание трехмерных сцен и структур, обработка визуальной информации

Во второй части проанализированы методы идентификации объектов в робототехнических системах и построена теоретико-множественная модель распознавания и идентификации.

Основными методами являются:

- метод сравнения с эталоном (установление совпадения двух точечных изображений);

- методы теории графов и распознавание (представление сегментов контура в виде графа и поиске на графе пути наименьшей стоимости, который соответствует значимым контурам);

- корреляционный метод (вычисление взаимокорреляционной функции между эталоном и изображением);

- распознавание через связи шаблонов (согласование компонентов изображения как шаблон и определение, какие объекты присутствуют, изучив предложенные связи между найденными шаблонами);

- искусственные нейронные сети (обучение сети по различным образцам образов с указанием того, к какому классу они относятся).

В третьей части работы была рассмотрена практическая реализация методов обработки информации в робототехнических системах. Существуют два основных подхода к предварительной обработке информации. Первый подход основан на методах пространственной области, а второй -- на методах частотной области с использованием преобразования Фурье. Вместе эти подходы охватывают большинство из существующих алгоритмов предварительной обработки информации, применяемых в системах технического зрения роботов. Основными библиотеками, работающими с методами распознавания и идентификации являются библиотека Integrated Performance Primitives (IPP), библиотека AviCap, библиотека компьютерного зрения с открытым кодом OpenCV. Рассмотрены основные функции и их реализация в библиотеке OpenCV.

В четвертой части исследованы и программно реализованы методы распознавания и идентификации простых объектов. Базовой библиотекой распознавания выбрана библиотека компьютерного зрения OpenCV. Полученные результаты обеспечивают выделение границ и контуров объектов, определение центров масс. Для простых объектов реализованы функции распознавания и идентификации.

К числу перспективных направлений исследований следует отнести дальнейшее развитие методов распознавания и идентификации, их программную реализацию для промышленных операционных систем реального времени. В комбинации с системой принятия решений такие разработки существенно ускорят реализацию систем управления интеллектуальными роботами.

ПЕРЕЧЕНЬ ССЫЛОК

1.Анисимов Б.В. Распознавание и цифровая обработка изображений [Текст] / Б.В. Анисимов, В.Д. Курганов - М.: Мир, 2007. - 295с.

2.Фу К. Робототехника [Текст] / К.Фу, Р.Гонсалес, К. ЛИ, : пер. с англ. - М.: Мир, 2009. - 624 с.

3.Катыс Г.П. Техническое зрение роботов [Текст] / Г.П. Катыс. - 2006. - 176 с.

4.Хорн Б.К.П. Зрение роботов [Текст] / Б.К.П. Хорн. - М: Мир, 2009. - 488 с.

5.Sung K. K. Learning Human Face Detection in Cluttered Scene [Текст] / K. K. Sung, T. Poggio // Lecture Notes in Computer Science - Computer Analysis of Images and Patterns, 2005. P. 432-439.

6.Rosenblum M. Human Emotion Recognition from Motion Using a Radial Basis Function Network Architecture [Текст] M. Rosenblum, Y.Yacoob, L.Davis // IEEE Workshop on Motion of Non-Rigid and Articulated Objects, 2006. - 257 с.

7. Пентланд А.С. Распознавание лиц для интеллектуальных сред [Текст] А.С. Пентланд, Т. Чаудхари // Открытые Системы, №03, 2006.

8. Техническое зрение роботов [Текст] : пер с англ. / под ред. А.Пью - М.: Машиностроение, 2006. - 320 с.

9.Глазунов, А. Компьютерное распознавание человеческих лиц [Текст] А. Глазунов // Открытые Системы, №03, 2007 - 107 с.

10. Абламейко С.В. Обработка изображений: Технология, методы, применение [Текст] / С.В. Абламейко, Д.М. Лагуновский - Мн:, 2009. - 300 с.

11.Соломатин, Н.М. Логические элементы ЭВМ [Текст] : учеб. пособие / Н.М. Соломатин, М. Высш. шк. 2007г. 160 с.: ил.

12.Якушенков Ю.Г. Техническое зрение роботов [Текст] / Ю.Г. Якушенков - М.: Машиностроение, 2007. - 272 с.: ил.

13.Canny J.F. Finding edges and lines in images. [Текст] / J.F. Canny MIT, Cambridge, USA, 2006.

14.Прэтт У. Цифровая обработка изображений [Текст] / У. Прэтт М.: Мир, 2008. - 784 с.

15.Smith S.M. SUSAN - a new approach to Low Level Image Processing [Текст] / S.M. Smith, J.M. Brady // DRA Technical Report TR95SMMS1b. - 2008. -57p.

16.Kaas M. Snakes: Active Contour Models. [Текст] / M. Kaas, A. Witkin, D. Terzopoulos // Int. Journal of Computer Vision. - 2007, N1, -p.312-331.

17. Форсайт Компьютерное зрение. Современный подход [Текст] : пер. с англ. / Форсайт, Понс, Девид, Жан - М.: Издательский дом «Вильямс». 2006. - 928 с.

18. Брагин В.. Системы очувствления и адаптивные промышленные роботы [Текст] / В. Брагин, Ю. Войлов, Ю.Жаботинский : под ред. К.Попова - М.: Машиностроение, 2006. - 256 с.

19. Ямпольский Л.С. Промышленная робототехника [Текст] / Л.С. Ямпольский, Е.Г. Вайсман - К.: Техника, 2006. - 264 с.

20. Техническое зрение роботов [Текст] / В.И. Мошкин, А.А. Петров, В.С. Титов, Ю.Г Якушенков; под общ. ред. Ю.Г. Якушенкова. - М..: Машиностроение, 2008. 272с.; ил.

21. Павлидис Т. Алгоритмы машинной графики и обработки изображений. [Текст] / Т. Павлидис - М.: Радио и связь, 2006. - 399 с.

22. Введение в компьютерное зрение. [Электронный ресурс] . - Режим доступа : www/ URL: http://graphics.cs.msu.ru/ru/library/cv/cv_intro.html. -28.05.2010. . - Загл. с экрана.

23. Компьютерное зрение [Электронный ресурс]. - Режим доступа : www/ URL: http://www.cs.cmu.edu/~cil/vision.html. - 28.05.2010.- Загл. с экрана.

24. Цифровое компьютерное зрение [Электронный ресурс]. - Режим доступа : www/ URL : http://graphics.cs.msu.ru/courses/cg02b/library/ - 28.05.2010.- Загл. с экрана.

25. Open Source Computer Vision Library [Электронный ресурс]. - Режим доступа : www/ URL : http://www.intel.com/technology/computing/

opencv/index.htm - 28.05.2010.- Загл. с экрана.

26. Компьютерное зрение [Электронный ресурс]. - Режим доступа : www/ URL : http://www.roboforum.ru/viewforum.php?f=51&sid=29ea9ba7faf

446dda7cbdbcbd5a45d42 - 29.05.2010.- Загл. с экрана.

27. Open Computer Vision Library [Электронный ресурс]. - Режим доступа : www/ URL : http://sourceforge.net/projects/opencvlibrary/-27.05.2010.- Загл. с экрана.

28. Интерфейсы программного обеспечения [Электронный ресурс]. - Режим доступа : www/ URL : http://yudenisov.narod.ru/EIS/Vol11/a000.htm - 27.04.2008.- Загл. с экрана.

29. Методичні вказівки з дипломного проектування для студентів спеціальності 7.091402 “Гнучкі комп'ютеризовані системи та робототехніка” [Текст] / Упоряд.: В.В. Токарев, О.М. Цимбал - Харків: ХНУРЕ. - 2006. - 48 с.

ПРИЛОЖЕНИЯ

Приложение А Текст программы 1

// Файл 1.cpp

#include <afxwin.h>

#include <cxcore.h>

#include <cv.h>

#include <cvcam.h>

#include <highgui.h>

#include "1.h"

#include <string.h>

#include <assert.h>

#include <math.h>

#include <float.h>

#include <limits.h>

#include <time.h>

#include <ctype.h>

void mycallback(IplImage *img);

IplImage *image1,*src2,*dst,*dst2,*dst3,*dst4,*gray,*dst5,*dst6,*dst7,*dst8;

int contNum=0;

int harrist=0;

int cannyt=0;

int thresh=0;

int thresh2=0;

CvRect camSpace;

CvMoments moments;

CvPoint centre_of_mass;

CvSeq *contour;

CvMemStorage *storage,*storage2;

bool bCreate=true;

double m=2;

CvPoint2D32f center;

static CvHaarClassifierCascade* cascade = 0;

const char* cascade_name = "haarcascade_frontalface_alt2.xml";

int Haart= 0;

BOOL CApp::InitInstance()

{

m_pMainWnd=new CMainWin;

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow();

return TRUE;

}

BEGIN_MESSAGE_MAP(CMainWin,CFrameWnd)

ON_WM_CLOSE()

END_MESSAGE_MAP()

CApp App;

CMainWin::CMainWin()

{ Create (NULL, "OpenCV");

HWND w= this->GetSafeHwnd();

int ncams=cvcamGetCamerasCount();

if (ncams)

{bCreate=true;

VidFormat vidFmt={800,600,20.0};

cvcamSetProperty(0,CVCAM_PROP_ENABLE,CVCAMTRUE);

cvcamSetProperty(0,CVCAM_PROP_CALLBACK,mycallback);

cvcamSetProperty(0,CVCAM_PROP_WINDOW,&w);

cvcamSetProperty(0,CVCAM_PROP_SETFORMAT,&vidFmt);

cvNamedWindow(cvGetWindowName(w),CV_WINDOW_AUTOSIZE);

cvNamedWindow( "Canny", 1 );

cvCreateTrackbar("CannyTrack","Canny",&cannyt,200,NULL);

cvResizeWindow("Canny",320,200);

cvNamedWindow( "Contour", 3 );

cvNamedWindow("Sobel",2);

cvResizeWindow("Sobel",320,200);

cvNamedWindow("CornerDetect",9);

cvNamedWindow("Harris",5);

cvResizeWindow("Harris",320,200);

cvCreateTrackbar("HarrisTrack","Harris",&harrist,200,NULL);

cvNamedWindow( "threshold", 7 );

cvCreateTrackbar("threshold","threshold",&thresh,200,NULL);

cvNamedWindow( "Adaptive", 8 );

cvCreateTrackbar("Adaptive","Adaptive",&thresh2,200,NULL);

cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 );

if(!cvcamInit()) MessageBox("Error");

elsecvcamStart();

}

else MessageBox ("Camera not found");

}

void mycallback(IplImage *src)

{image1 = src;

if (bCreate)

{storage=cvCreateMemStorage();

src2=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,3);

dst=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,3);

dst2=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_32F,3);

dst3=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,1);

dst4=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,1);

dst5=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_32F,1);

dst6=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_32F,1);

dst7=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,1);

dst8=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_32F,1);

gray=cvCreateImage(cvSize(src->width,src->height),IPL_DEPTH_8U,1);

bCreate=false;

}

for (int k=0;k<image1->height;k+=600)

for(int j=(image1->widthStep)*k;j<(image1->widthStep)*(k+1);j+=image1->nChannels)

{image1->imageData[j]=(char) 255;

image1->imageData[j+1]=0;

image1->imageData[j+2]=0;

}

cvFlip(src,src2);

cvSobel(src2,dst,1,3,7);

cvShowImage("Sobel",dst);

cvCvtColor(src2,gray,CV_RGB2GRAY);

cvCanny(gray,dst3,25,100+cannyt,3);

cvShowImage("Canny",dst3);

CvScalar color=CV_RGB(rand()&255,rand()&255,rand()&255);contNum=cvFindContours( dst3,storage,&contour,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);

for(;contour!=0;contour=contour->h_next)

{ cvDrawContours(dst7,contour,color,color,-1,1,8);

cvMoments(contour,&moments,0); centre_of_mass.x=moments.m10/moments.m00; centre_of_mass.y=moments.m01/moments.m00;

cvCircle(dst7,centre_of_mass,5,CV_RGB(255,255,255),1,8,0);}

cvShowImage("Contour",dst7);

cvCornerHarris(gray,dst8,3,7,harrist/1000.0);

cvShowImage("Harris",dst8);

static CvScalar colors[] =

{ {{0,0,255}},

{{0,128,255}},

{{0,255,255}},

{{0,255,0}},

{{255,128,0}},

{{255,255,0}},

{{255,0,0}},

{{255,0,255}}

};

double scale = 1.3;

IplImage* gray2 = cvCreateImage( cvSize(src->width,src->height), 8, 1 );

IplImage* small_img = cvCreateImage( cvSize( cvRound (src->width/scale),

cvRound (src->height/scale)),8, 1 ); int i;

cvCvtColor( src, gray2, CV_BGR2GRAY );

cvResize( gray2, small_img, CV_INTER_LINEAR );

cvEqualizeHist( small_img, small_img );

cvClearMemStorage( storage );

if( cascade )

{ double t = (double)cvGetTickCount();

CvSeq* face = cvHaarDetectObjects( small_img, cascade, storage,1.1,1,0,cvSize(30,30));

t = (double)cvGetTickCount() - t;

printf( "detection time = %gms\n", t/((double)cvGetTickFrequency()*1000.) );

for( i = 0; i < (face ? face->total : 0); i++ )

{ CvRect* r = (CvRect*)cvGetSeqElem( face, i );

CvPoint center;

int radius;

center.x = cvRound((r->x + r->width*0.5)*scale);

center.y = cvRound((r->y + r->height*0.5)*scale);

radius = cvRound((r->width + r->height)*0.5*scale);

cvCircle( src, center, radius, colors[i%8], 3, 8, 0 );

}

} cvPreCornerDetect(dst3,dst5,5);

cvShowImage( "CornerDetect", dst5 );

cvLogPolar( dst, src2, cvPoint2D32f(src->width/2,src->height/2), 40, CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS+CV_WARP_INVERSE_MAP );

cvShowImage( "log-polar", dst );

cvShowImage( "inverse log-polar", src2 );

cvWaitKey();

cvThreshold(src2,dst,2,10+thresh,CV_THRESH_BINARY_INV);

cvShowImage( "threshold", dst );

cvAdaptiveThreshold(dst3,dst4,5+thresh2,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,3,5);

cvShowImage( "Adaptive", dst4 );

cvShowImage( "result", src );

cvReleaseImage( &gray2 );

cvReleaseImage( &small_img );

cvZero(dst);

cvZero(gray);;

cvZero(dst2);

cvZero(dst3);

cvZero(dst6);

cvZero(dst7);

cvZero(dst8);

cvZero(dst5);

}

void CMainWin::OnClose()

{ cvcamStop();

cvDestroyAllWindows();

cvcamExit();

if(!bCreate)cvReleaseImage(&dst);

DestroyWindow();

}

// Файл 1.h

#if _MSC_VER > 1000

#pragma once

class CMainWin : public CFrameWnd

{

public:

CMainWin();

void OnClose();

DECLARE_MESSAGE_MAP();

};

class CApp : public CWinApp

{

public:

BOOL InitInstance();

};

Интерфейс главного окна программы:

Рисунок 1.А - Интерфейс окна программы

Приложение Б Тест программы 2

#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

#include "math.h"

#include <iostream>

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <sstream>

using namespace std;

double angle( CvPoint* pt1, CvPoint* pt2, CvPoint* pt0 )

{

double dx1 = pt1->x - pt0->x;

double dy1 = pt1->y - pt0->y;

double dx2 = pt2->x - pt0->x;

double dy2 = pt2->y - pt0->y;

return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10);}

CvSeq* findSquares4( IplImage* img, CvMemStorage* storage )

{ double s = 0, t = 0;

CvSeq* contours = NULL;

CvSeq* result = NULL;

CvSeq* squares = cvCreateSeq( 0, sizeof( CvSeq), sizeof( CvPoint), storage );

cvFindContours( img, storage, &contours, sizeof( CvContour), СV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint( 0, 0) );

while( contours )

{ result = cvApproxPoly( contours, sizeof( CvContour), storage, CV_POLY_APPROX_DP, cvContourPerimeter( contours)*0.02, 0 );

if( result->total == 4 && fabs( cvContourArea( result, СV_WHOLE_SEQ)) > 1000 && fabs( cvContourArea( result, CV_WHOLE_SEQ)) <( img->height * img->width/2 ) && cvCheckContourConvexity( result) )

{ s = 0;

for( int i = 0; i < 5; i++ )

{ if( i >= 2 ) { t = fabs( angle( ( CvPoint*)cvGetSeqElem( result, i ), ( CvPoint*)cvGetSeqElem( result, i-2 ), ( CvPoint*)cvGetSeqElem( result, i-1 )));

s = s > t ? s : t; } }

if( s < 0.5 )for( int i = 0; i < 4; i++ )cvSeqPush( squares, (CvPoint*)cvGetSeqElem( result, i )); }

contours = contours->h_next; }

cout<<">>> rectangles: "<< squares->total/4 <<endl;

return squares;}

void drawSquares(IplImage *img, CvSeq* squares )

{ CvFont font;

cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX, 0.4f, 0.4f, 0,1, 8 );

int i,j = 0;

CvSeqReader reader;

cvStartReadSeq( squares, &reader, 0 );

for( i = 0; i < squares->total; i += 4 )

{ j++;

CvPoint pt[4], *rect = pt;

int count = 4;

// read 4 vertices

CV_READ_SEQ_ELEM( pt[0], reader );

CV_READ_SEQ_ELEM( pt[1], reader );

CV_READ_SEQ_ELEM( pt[2], reader );

CV_READ_SEQ_ELEM( pt[3], reader );

cvCircle( img, pt[1], 2, CV_RGB(200,0,0),1, 8, 0 );

cvCircle( img, pt[2], 4, CV_RGB(200,0,0),1, 8, 0 );

cvLine( img, pt[1], pt[2], CV_RGB(255,255,255),1, 8, 0 )

double angle = abs(pt[1].y-pt[2].y)/sqrt((pt[1].x-pt[2].x)*(pt[1].x-pt[2].x)+(pt[1].y-pt[2].y)*(pt[1].y-pt[2].y)+0.00001);char st[255]; sprintf(st, "%2f", angle);

cvLine( img, cvPoint(0,img->height/2), cvPoint(img->width,img->height/2), CV_RGB(200,200,200),1, 8, 0 );

cvLine( img, cvPoint(img->width/3,0), cvPoint(img->width/3,img->height), CV_RGB(200,200,200),1, 8, 0 );

cvLine( img, cvPoint(img->width/3*2,0), cvPoint(img->width/3*2,img->height), CV_RGB(200,200,200),1, 8, 0 );

cvPutText( img, st, pt[1], &font, CV_RGB(200,0,0));

cvPolyLine( img, &rect, &count, 1, 1, CV_RGB(255,255,255), 1, CV_AA, 0 );}}

int main() { int c = 0;

CvCapture* capture = cvCaptureFromCAM(0);

f(!cvQueryFrame(capture)){cout<<"Video capture failed, please check the camera."<<endl;}else{cout<<"Video camera capture status: OK"<<endl;};

CvSize sz = cvGetSize(cvQueryFrame(capture));

cvNamedWindow( "out", 0);

cvNamedWindow( "src", 1);

IplImage* src = cvCreateImage( sz, 8, 3 );

IplImage* gray = cvCreateImage( sz, 8, 1 );

IplImage* pyr = cvCreateImage( cvSize(sz.width/2, sz.height/2), 8, 3 );

IplImage* tgray = cvCreateImage( sz, 8, 1 );

CvMemStorage* storage = cvCreateMemStorage(0);

CvSeq* contours = NULL;

CvMemStorage* mainStorage = cvCreateMemStorage(0);

CvMemStorage* cstorage = cvCreateMemStorage( 0);

CvSeq* circles = NULL;

while(c != 27) {IplImage* img = NULL;

IplImage* out = NULL;

src = cvQueryFrame( capture);

img = cvCloneImage( src); out = cvCloneImage( src);

cvPyrDown( img, pyr, 7 ); cvPyrUp( pyr, img, 7 );

cvSetImageCOI( img, 2 );

cvCopy( img, tgray, 0 );

cvThreshold( tgray, gray, 100, 255, CV_THRESH_BINARY );

cvShowImage( "src", gray);

cvFindContours( gray, storage, &contours, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) );

circles = cvHoughCircles( gray, cstorage, CV_HOUGH_GRADIENT, 1, gray->height/16, 8, 10, 4, 50 );

cout <<"Total circles: "<< circles->total <<endl;

for( int i = 0; i < circles-> total; i++ )

{float* p = ( float*)cvGetSeqElem( circles, i );

cvCircle( out, cvPoint( cvRound( p[0]), cvRound( p[1])), 2, CV_RGB( 200, 0, 0), -1, 8, 0 );

cvCircle( out, cvPoint( cvRound( p[0]), cvRound( p[1])), cvRound( p[2]), CV_RGB( 200, 0, 0), 1, 8, 0 );}

drawSquares(out,findSquares4(gray,mainStorage));

cvReleaseImage( &img);

cvShowImage( "out", out);

cvReleaseImage( &out);

c = cvWaitKey(10); }

cvReleaseCapture( &capture );

cvDestroyAllWindows();}

Интерфейс окна программы:

Рисунок 1.Б - Интерфейс окна программы 2

Приложение В Демонстрационный графический материал

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на Allbest.ru


Подобные документы

  • Выбор методов проектирования устройства обработки и передачи информации. Разработка алгоритма операций для обработки информации, структурной схемы устройства. Временная диаграмма управляющих сигналов. Элементная база для разработки принципиальной схемы.

    курсовая работа [1,8 M], добавлен 16.08.2012

  • Модель обработки радиоголографических изображений. Изображение объекта, находящегося за препятствием. Фильтр для практической реализации метода. Исследование эффективности метода пространственной фильтрации при малом поглощении и преломлении в стене.

    дипломная работа [4,1 M], добавлен 19.06.2013

  • Недостатки цифровых систем: сложность, ограниченное быстродействие. Этапы цифровой обработки радиолокационных изображений: первичная и вторичная, объединение информации. Особенности процесса двоичного квантования. Анализ схем логических обнаружителей.

    дипломная работа [3,5 M], добавлен 09.04.2012

  • Математическая основа построения систем защиты информации в телекоммуникационных системах. Особенности методов криптографии. Принципы, методы и средства реализации защиты данных. Основы ассиметричного и симметричного шифрования-дешифрования информации.

    курсовая работа [46,9 K], добавлен 13.12.2013

  • Разработка и проектный расчет структурной схемы системы сбора аналоговой информации для дальнейшей обработки в системах боле высокого уровня. Определение технических требований к функциональным блокам системы. Выбор и расчет принципиальных схем блоков.

    курсовая работа [987,2 K], добавлен 29.04.2011

  • Понятие и применение нейронных сетей, особенности классификации искусственных нейронных сетей по Терехову. Решение задачи классификации римских цифр на основе нейронной сети. Составление блок-схемы алгоритма обучения нейронной сети и анализ ее качества.

    дипломная работа [603,9 K], добавлен 14.10.2010

  • Определение и виды искусственных нейронных сетей. Функция активации. Биологический нейрон. Персептрон как инструмент для классификации образов. Классификация объектов с помощью нейронной сети. Нормализация входных сигналов. Алгоритм работы в MatlabR2009b.

    курсовая работа [349,7 K], добавлен 17.03.2016

  • Интроскопия - внутривидение, визуальное наблюдение объектов, явлений и процессов в оптически непрозрачных телах и средах, в условиях плохой видимости. Классификация методов диагностики. Общность методов и средств обработки иитроскопических изображений.

    реферат [265,7 K], добавлен 01.02.2009

  • Достоверность передаваемой информации в системах связи; разработка функциональной и принципиальной электрических схем самоортогональных сверточных кодов; способы задания и алгоритм порогового декодирования. Выбор микропроцессорной базы для блоков кодека.

    курсовая работа [1,5 M], добавлен 07.10.2012

  • Использование аппаратных и программных средств в устройствах обработки информации. Организация взаимодействия устройств, входящих в систему, при помощи микропроцессора. Описание микроконтроллера, процессорного блока, адаптера параллельного интерфейса.

    курсовая работа [515,2 K], добавлен 18.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.