Исследование систем управления манипулятором MR-999Е
Диссертация - Компьютеры, программирование
Другие диссертации по предмету Компьютеры, программирование
>Для нахождения нескольких контуров используется цикл, представленный ниже:
while(contours)
{ result = cvApproxPoly( contours, sizeof( CvContour), storage, CV_POLY_APPROX_DP, cvContourPerimeter( contours)*0.02, 0 );( result->total == 4 && fabs( cvContourArea( result, CV_WHOLE_SEQ)) > 1000 && fabs( cvContourArea( result, CV_WHOLE_SEQ)) 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; }.
На рис. 4.8 представлен результат применения функции выделения контуров.
Рисунок 4.8 - Пример выделения контуров изображений
Функция cvHoughCircles находит окружности на сером изображении, используя преобразование Хью:
cvHoughCircles( gray, cstorage, CV_HOUGH_GRADIENT, 1, gray->height/16, 8, 10, 4, 50 ).
В данной функции, использованной в программном обеспечении параметр gray является 8-битым изображением; cstorage - область памяти, в которой хранятся окружности, обнаруженные функцией; CV_HOUGH_GRADIENT - метод реализации функции; 1 - стек, который используется для обнаружения центров окружностей с тем же разрешением, что и исходное изображение; gray->height/16 - вычисляется минимальное расстояние между центрами обнаруженных окружностей; следующие 2 параметра отвечают за накопление порогов в обнаруженных окружностях; последние 2 параметра отвечают за минимальный и максимальный радиус находимых окружностей.
Для отображения окружностей используется цикл, который выглядит так:
for( int i = 0; i total; i++ )
{ float* p = ( float*)cvGetSeqElem( circles, i );( out, cvPoint( cvRound( p[0]), cvRound( p[1])),
, CV_RGB( 200, 0, 0), -1, 8, 0 );( out, cvPoint( cvRound( p[0]), cvRound( p[1])), cvRound( p[2]), CV_RGB( 200, 0, 0), 1, 8, 0 ); }
Пример выполнения функции представлен на рис. 4.9.
Рисунок 4.9 - Применение функции выделения кругов
Отображение прямоугольных изображений осуществляется командой
void drawSquares(IplImage *img, CvSeq* squares);
Прямоугольные объекты определяются при помощи функции полилиний
cvPolyLine( img, &rect, &count, 1, 1, CV_RGB(200,0,0), 1, CV_AA, 0 );
Далее читается последовательность 4 линий
CV_READ_SEQ_ELEM( pt[0], reader );_READ_SEQ_ELEM( pt[1], reader );_READ_SEQ_ELEM( pt[2], reader );_READ_SEQ_ELEM( pt[3], reader ).
Угол поворота линий полилинии задан при помощи функции :
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);
Сами линии полилинии прорисовываются с помощью функций:
cvLine( img, cvPoint(0,img->height/2), cvPoint(img->width,img->height/2), CV_RGB(200,200,200),1, 8, 0 );( img, cvPoint(img->width/3,0), cvPoint(img->width/3,img->height), CV_RGB(200,200,200),1, 8, 0 );( 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).
Вывод прямоугольных объектов производится функцией drawSquares(out,findSquares4(gray, mainStorage)), где out - изображение, содержащее прямоугольные фигуры. Пример выполнения выделения прямоугольных объектов показан на рис. 4.10.
Таким образом разработанное программное обеспечение выполняет съем и обработку информации, поступающую с WEB-камеры (СТЗ робота), обеспечивает выполнение границ, контуров, идентификацию простых объектов.
Полный текст программы приведен в приложениях А и Б.
Рисунок 4.10 - Выполнение выделения прямоугольных объектов
В четвертой части исследованы и программно реализованы методы распознавания и идентификации простых объектов. Базовой библиотекой распознавания выбрана библиотека компьютерного зрения OpenCV. Полученные результаты обеспечивают выделение границ и контуров объектов, определение центров масс. Для простых объектов реализованы функции распознавания и идентификации.
5. БЕЗОПАСНОСТЬ ЖИЗНИ И ДЕЯТЕЛЬНОСТИ ЧЕЛОВЕКА
5.1 Анализ условий труда в помещении лаборатории исследовательского бюро кафедры ТАПР
Анализ условий труда производится для помещения лаборатории исследовательского бюро. Помещение лаборатории находится на 1 этаже 4-этажного кирпичного здания.
Помещение лаборатории, в котором размещены рабочие места операторов ЭВМ, обладает следующими параметрами: высота 3 м, ширина 10 м, длина 12 м, площадь 120 м2, объем 360 м3, площадь окон 12 м2, потребляемая мощность 3 кВт, персонал - 3 человека.
В помещении находится 3 рабочих места, одновременно в помещении работает 3 человека.
На каждое рабочее место приходится по одному ПК, общая потребляемая мощность оборудования составляет 3 кВт.
Электропитание лаборатории осуществляется от трёхфазной четырехпроводной сети переменного тока с напряжением 380/220 В, частотой 501 Гц, с глухозаземленной нейтралью.
Рассмотрим систему Ч-М-С, ограниченную размерами помещения (элемент среда), в составе всего рабочего коллектива (элемент человек) и всего комплекса технических средств, прямо или косвенно участвующих в технологическом процессе (элемент машина).
Разделим элемент человек на три функциональные части: Ч1 - человек - управление машиной; Ч2- человек, рассматриваемый с точки зрения непосредственного влияния на окружающую среду; Ч3- человек рассматриваемый с точки зрения его физиологического состояния под влиянием факторов, воздействующих на него в производственном процессе.
В данном случае элементом человек является коллектив из 3-х человек, находящихся в помещении лаборатории №Лаборатория исследовательского бюро.
Элемент машина (3 персональных ЭВМ) выполняет основную технологическую функцию - влияние на предмет труда, дополнительную - формирование параметров окружающей ср?/p>