Применение математических методов при организации пропускного режима

Автор: Пользователь скрыл имя, 11 Марта 2013 в 01:32, курсовая работа

Описание работы

В работе разрабатывается подход к изучению систем распознавания людей по отпечаткам пальцев. Предлагается смоделировать изучаемый объект и разработать алгоритмы для проведения исследований. Целью работы является усовершенствования пропускного режима. В качестве тестового объекта рассматривается задача об организации пропускного режима в компании ITV.

Содержание

Введение.
1.Описание производственной деятельности предприятия на примере компании «ITV».
2.Структура организации компании ITV.
3.Использование математических методов при распознавании отпечатков пальцев.
Заключение.
Литература.
Приложение.

Работа содержит 1 файл

Organizatsia_i_planirovanie_proizvodstva_Itogovy.docx

— 1.90 Мб (Скачать)

(после  бинаризации)

    w= len (img)

h= len (img[ 0 ])

count= 1

while count !

= 0 : #повторять  пок удалялся хотя бы один  пиксель

count=delete(img,w,h)

if count:

delete2(img,w,h)

def delete

(img,w,h): #удаление  пикселя по основному набору, возврат кол-ва удаленных

count= 0

for i in range ( 1 ,h- 1 ):

for j in range ( 1 ,w- 1 ):

if img[j][i]== 0 :

if deletable(img,j,i):

img[j][i]= 1

count+= 1

return count

def delete2(img,w,h): #удаление пикселя по шумовому  набору

for i in range ( 1 ,h- 1 ):

for j in range ( 1 ,w- 1 ):

if img[j][i]== 0 :

if deletable2(img,j,i):

img[j][i]= 1

def fringe

(a): #определение  принадлежности 3*3 к шумам

t=[[ 1 ,1 ,1 ,1 ,0 ,1 ,1 ,1 ,1 ],

[ 1 ,1 ,1 ,1 ,0 ,1 ,1 ,0 , 0 ],

[ 1 ,1 ,1 ,0 ,0 ,1 ,0 ,1 , 1 ],

[ 0 ,0 ,1 ,1 ,0 ,1 ,1 ,1 , 1 ],

[ 1 ,1 ,0 ,1 ,0 ,0 ,1 ,1 , 1 ],

[ 1 ,1 ,1 ,1 ,0 ,1 ,0 ,0 , 1 ],

[ 0 ,1 ,1 ,0 ,0 ,1 ,1 ,1 , 1 ],

[ 1 ,0 ,0 ,1 ,0 ,1 ,1 ,1 , 1 ],

[ 1 ,1 ,1 ,1 ,0 ,0 ,1 ,1 , 0 ],

[ 1 ,1 ,1 ,1 ,0 ,1 ,0 ,0 , 0 ],

[ 0 ,1 ,1 ,0 ,0 ,1 ,0 ,1 , 1 ],

[ 0 ,0 ,0 ,1 ,0 ,1 ,1 ,1 , 1 ],

[ 1 ,1 ,0 ,1 ,0 ,0 ,1 ,1 , 0 ]]

for i in t:

if a==i:

return True

def check

(a): #определение  принадлежности 3*3 к основным шаблонам

t123457=[ 1 , 1 ,0 ,0 ,1 ,0 ]

t013457=[ 1 , 1 ,1 ,0 ,0 ,0 ]

t134567=[ 0 , 1 ,0 ,0 ,1 ,1 ]

t134578=[ 0 , 0 ,0 ,1 ,1 ,1 ]

t0123457=[ 1 ,1 ,1 ,0 , 0 ,0 ,0 ]

t0134567=[ 1 ,0 ,1 ,0 , 0 ,1 ,0 ]

t1345678=[ 0 ,0 ,0 ,0 , 1 ,1 ,1 ]

t1234578=[ 0 ,1 ,0 ,0 , 1 ,0 ,1 ]

t=[a[ 1 ],a[ 2 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 7 ]]

if t == t123457:

return True

t=[a[ 0 ],a[ 1 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 7 ]]

if t == t013457:

return True

t=[a[ 1 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 6 ],a[ 7 ]]

if t == t134567:

return True

t=[a[ 1 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 7 ],a[ 8 ]]

if t == t134578:

return True

t=[a[ 0 ],a[ 1 ],a[ 2 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 7 ]]

if t == t0123457:

return True

t=[a[ 1 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 6 ],a[ 7 ],a[ 8 ]]

if t == t1345678:

return True

t=[a[ 0 ],a[ 1 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 6 ],a[ 7 ]]

if t == t0134567:

return True

t=[a[ 1 ],a[ 2 ],a[ 3 ],a[ 4 ],a[ 5 ],a[ 7 ],a[ 8 ]]

if t == t1234578:

return True

def deletable

(img,x,y): #получение  3*3, передача на проверку для  осн.

a=[]

for i in range (y- 1 ,y+ 2 ):

for j in range (x- 1 ,x+ 2 ):

a.append(img[j][i])

return check(a)

def deletable2(img,x,y): #получение 3*3, передача на проверку  для шумов

a=[]

for i in range (y- 1 ,y+ 2 ):

for j in range (x- 1 ,x+ 2 ):

a.append(img[j][i])

return fringe(a)

 

Приложение 3

def checkThisPoint

(img, x, y): #подсчет количества черных в  окрестности

c= 0

for i in range (x- 1 ,x+ 2 ):

for j in range (y- 1 ,y+ 2 ):

if img[i][j]== 0 :

c+= 1

return c- 1

def findCheckPoint

(img): #формирование  списков точек ветвления и  конечных

x= len (img)

y= len (img[ 0 ])

branchPoint=[]

endPoint=[]

for i in range (x):

for j in range (y):

if img[i][j]== 0 :

t=checkThisPoint(img, i, j)

if t== 1 :

endPoint.append((i,j))

if t== 3 :

branchPoint.append((i,j))

return (branchPoint, endPoint)

 

Приложение 4

def matchingPoint

(r, v): #вход: кортеж точек эталона и кортеж  проверяемого; выход (совпало, всего)

all = 0

match= 0

for i in v[ 0 ]:

x= range (i[ 0 ]- 15 ,i[ 0 ]+ 15 )

y= range (i[ 1 ]- 15 ,i[ 1 ]+ 15 )

all += 1

for j in r[ 0 ]:

if j[ 0 ] in x and j[ 1 ] in y:

match+= 1

break

for i in v[ 1 ]:

x= range (i[ 0 ]- 15 ,i[ 0 ]+ 15 )

y= range (i[ 1 ]- 15 ,i[ 1 ]+ 15 )

all += 1

for j in r[ 1 ]:

if j[ 0 ] in x and j[ 1 ] in y:

match+= 1

break

return (match, all )

 

 

 

 


Информация о работе Применение математических методов при организации пропускного режима